PageRenderTime 46ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/Pods/Documentation/CocoaAsyncSocket/html/Classes/GCDAsyncUdpSocket.html

https://gitlab.com/mba811/tokaidoapp
HTML | 3584 lines | 1901 code | 1683 blank | 0 comment | 0 complexity | b3aefa7ecd4161218937f5aed8e5c737 MD5 | raw file
Possible License(s): BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
  5. <title>GCDAsyncUdpSocket Class Reference</title>
  6. <meta id="xcode-display" name="xcode-display" content="render"/>
  7. <link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
  8. <link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
  9. <meta name="generator" content="appledoc 2.1 (build 858)" />
  10. </head>
  11. <body>
  12. <header id="top_header">
  13. <div id="library" class="hideInXcode">
  14. <h1><a id="libraryTitle" href="../index.html">CocoaAsyncSocket 0.0.1 </a></h1>
  15. <a id="developerHome" href="../index.html">Dustin Voss and Robbie Hanson</a>
  16. </div>
  17. <div id="title" role="banner">
  18. <h1 class="hideInXcode">GCDAsyncUdpSocket Class Reference</h1>
  19. </div>
  20. <ul id="headerButtons" role="toolbar">
  21. <li id="toc_button">
  22. <button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
  23. </li>
  24. <li id="jumpto_button" role="navigation">
  25. <select id="jumpTo">
  26. <option value="top">Jump To&#133;</option>
  27. <option value="overview">Overview</option>
  28. <option value="tasks">Tasks</option>
  29. <option value="class_methods">Class Methods</option>
  30. <option value="//api/name/familyFromAddress:">&nbsp;&nbsp;&nbsp;&nbsp;+ familyFromAddress:</option>
  31. <option value="//api/name/getHost:port:family:fromAddress:">&nbsp;&nbsp;&nbsp;&nbsp;+ getHost:port:family:fromAddress:</option>
  32. <option value="//api/name/getHost:port:fromAddress:">&nbsp;&nbsp;&nbsp;&nbsp;+ getHost:port:fromAddress:</option>
  33. <option value="//api/name/hostFromAddress:">&nbsp;&nbsp;&nbsp;&nbsp;+ hostFromAddress:</option>
  34. <option value="//api/name/isIPv4Address:">&nbsp;&nbsp;&nbsp;&nbsp;+ isIPv4Address:</option>
  35. <option value="//api/name/isIPv6Address:">&nbsp;&nbsp;&nbsp;&nbsp;+ isIPv6Address:</option>
  36. <option value="//api/name/portFromAddress:">&nbsp;&nbsp;&nbsp;&nbsp;+ portFromAddress:</option>
  37. <option value="instance_methods">Instance Methods</option>
  38. <option value="//api/name/beginReceiving:">&nbsp;&nbsp;&nbsp;&nbsp;- beginReceiving:</option>
  39. <option value="//api/name/bindToAddress:error:">&nbsp;&nbsp;&nbsp;&nbsp;- bindToAddress:error:</option>
  40. <option value="//api/name/bindToPort:error:">&nbsp;&nbsp;&nbsp;&nbsp;- bindToPort:error:</option>
  41. <option value="//api/name/bindToPort:interface:error:">&nbsp;&nbsp;&nbsp;&nbsp;- bindToPort:interface:error:</option>
  42. <option value="//api/name/close">&nbsp;&nbsp;&nbsp;&nbsp;- close</option>
  43. <option value="//api/name/closeAfterSending">&nbsp;&nbsp;&nbsp;&nbsp;- closeAfterSending</option>
  44. <option value="//api/name/connectToAddress:error:">&nbsp;&nbsp;&nbsp;&nbsp;- connectToAddress:error:</option>
  45. <option value="//api/name/connectToHost:onPort:error:">&nbsp;&nbsp;&nbsp;&nbsp;- connectToHost:onPort:error:</option>
  46. <option value="//api/name/connectedAddress">&nbsp;&nbsp;&nbsp;&nbsp;- connectedAddress</option>
  47. <option value="//api/name/connectedHost">&nbsp;&nbsp;&nbsp;&nbsp;- connectedHost</option>
  48. <option value="//api/name/connectedPort">&nbsp;&nbsp;&nbsp;&nbsp;- connectedPort</option>
  49. <option value="//api/name/delegate">&nbsp;&nbsp;&nbsp;&nbsp;- delegate</option>
  50. <option value="//api/name/delegateQueue">&nbsp;&nbsp;&nbsp;&nbsp;- delegateQueue</option>
  51. <option value="//api/name/enableBroadcast:error:">&nbsp;&nbsp;&nbsp;&nbsp;- enableBroadcast:error:</option>
  52. <option value="//api/name/getDelegate:delegateQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- getDelegate:delegateQueue:</option>
  53. <option value="//api/name/init">&nbsp;&nbsp;&nbsp;&nbsp;- init</option>
  54. <option value="//api/name/initWithDelegate:delegateQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- initWithDelegate:delegateQueue:</option>
  55. <option value="//api/name/initWithDelegate:delegateQueue:socketQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- initWithDelegate:delegateQueue:socketQueue:</option>
  56. <option value="//api/name/initWithSocketQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- initWithSocketQueue:</option>
  57. <option value="//api/name/isClosed">&nbsp;&nbsp;&nbsp;&nbsp;- isClosed</option>
  58. <option value="//api/name/isConnected">&nbsp;&nbsp;&nbsp;&nbsp;- isConnected</option>
  59. <option value="//api/name/isIPVersionNeutral">&nbsp;&nbsp;&nbsp;&nbsp;- isIPVersionNeutral</option>
  60. <option value="//api/name/isIPv4">&nbsp;&nbsp;&nbsp;&nbsp;- isIPv4</option>
  61. <option value="//api/name/isIPv4Enabled">&nbsp;&nbsp;&nbsp;&nbsp;- isIPv4Enabled</option>
  62. <option value="//api/name/isIPv4Preferred">&nbsp;&nbsp;&nbsp;&nbsp;- isIPv4Preferred</option>
  63. <option value="//api/name/isIPv6">&nbsp;&nbsp;&nbsp;&nbsp;- isIPv6</option>
  64. <option value="//api/name/isIPv6Enabled">&nbsp;&nbsp;&nbsp;&nbsp;- isIPv6Enabled</option>
  65. <option value="//api/name/isIPv6Preferred">&nbsp;&nbsp;&nbsp;&nbsp;- isIPv6Preferred</option>
  66. <option value="//api/name/joinMulticastGroup:error:">&nbsp;&nbsp;&nbsp;&nbsp;- joinMulticastGroup:error:</option>
  67. <option value="//api/name/joinMulticastGroup:onInterface:error:">&nbsp;&nbsp;&nbsp;&nbsp;- joinMulticastGroup:onInterface:error:</option>
  68. <option value="//api/name/leaveMulticastGroup:error:">&nbsp;&nbsp;&nbsp;&nbsp;- leaveMulticastGroup:error:</option>
  69. <option value="//api/name/leaveMulticastGroup:onInterface:error:">&nbsp;&nbsp;&nbsp;&nbsp;- leaveMulticastGroup:onInterface:error:</option>
  70. <option value="//api/name/localAddress">&nbsp;&nbsp;&nbsp;&nbsp;- localAddress</option>
  71. <option value="//api/name/localAddress_IPv4">&nbsp;&nbsp;&nbsp;&nbsp;- localAddress_IPv4</option>
  72. <option value="//api/name/localAddress_IPv6">&nbsp;&nbsp;&nbsp;&nbsp;- localAddress_IPv6</option>
  73. <option value="//api/name/localHost">&nbsp;&nbsp;&nbsp;&nbsp;- localHost</option>
  74. <option value="//api/name/localHost_IPv4">&nbsp;&nbsp;&nbsp;&nbsp;- localHost_IPv4</option>
  75. <option value="//api/name/localHost_IPv6">&nbsp;&nbsp;&nbsp;&nbsp;- localHost_IPv6</option>
  76. <option value="//api/name/localPort">&nbsp;&nbsp;&nbsp;&nbsp;- localPort</option>
  77. <option value="//api/name/localPort_IPv4">&nbsp;&nbsp;&nbsp;&nbsp;- localPort_IPv4</option>
  78. <option value="//api/name/localPort_IPv6">&nbsp;&nbsp;&nbsp;&nbsp;- localPort_IPv6</option>
  79. <option value="//api/name/maxReceiveIPv4BufferSize">&nbsp;&nbsp;&nbsp;&nbsp;- maxReceiveIPv4BufferSize</option>
  80. <option value="//api/name/maxReceiveIPv6BufferSize">&nbsp;&nbsp;&nbsp;&nbsp;- maxReceiveIPv6BufferSize</option>
  81. <option value="//api/name/pauseReceiving">&nbsp;&nbsp;&nbsp;&nbsp;- pauseReceiving</option>
  82. <option value="//api/name/performBlock:">&nbsp;&nbsp;&nbsp;&nbsp;- performBlock:</option>
  83. <option value="//api/name/readStream">&nbsp;&nbsp;&nbsp;&nbsp;- readStream</option>
  84. <option value="//api/name/receiveOnce:">&nbsp;&nbsp;&nbsp;&nbsp;- receiveOnce:</option>
  85. <option value="//api/name/sendData:toAddress:withTimeout:tag:">&nbsp;&nbsp;&nbsp;&nbsp;- sendData:toAddress:withTimeout:tag:</option>
  86. <option value="//api/name/sendData:toHost:port:withTimeout:tag:">&nbsp;&nbsp;&nbsp;&nbsp;- sendData:toHost:port:withTimeout:tag:</option>
  87. <option value="//api/name/sendData:withTimeout:tag:">&nbsp;&nbsp;&nbsp;&nbsp;- sendData:withTimeout:tag:</option>
  88. <option value="//api/name/setDelegate:">&nbsp;&nbsp;&nbsp;&nbsp;- setDelegate:</option>
  89. <option value="//api/name/setDelegate:delegateQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- setDelegate:delegateQueue:</option>
  90. <option value="//api/name/setDelegateQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- setDelegateQueue:</option>
  91. <option value="//api/name/setIPVersionNeutral">&nbsp;&nbsp;&nbsp;&nbsp;- setIPVersionNeutral</option>
  92. <option value="//api/name/setIPv4Enabled:">&nbsp;&nbsp;&nbsp;&nbsp;- setIPv4Enabled:</option>
  93. <option value="//api/name/setIPv6Enabled:">&nbsp;&nbsp;&nbsp;&nbsp;- setIPv6Enabled:</option>
  94. <option value="//api/name/setMaxReceiveIPv4BufferSize:">&nbsp;&nbsp;&nbsp;&nbsp;- setMaxReceiveIPv4BufferSize:</option>
  95. <option value="//api/name/setMaxReceiveIPv6BufferSize:">&nbsp;&nbsp;&nbsp;&nbsp;- setMaxReceiveIPv6BufferSize:</option>
  96. <option value="//api/name/setPreferIPv4">&nbsp;&nbsp;&nbsp;&nbsp;- setPreferIPv4</option>
  97. <option value="//api/name/setPreferIPv6">&nbsp;&nbsp;&nbsp;&nbsp;- setPreferIPv6</option>
  98. <option value="//api/name/setReceiveFilter:withQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- setReceiveFilter:withQueue:</option>
  99. <option value="//api/name/setReceiveFilter:withQueue:isAsynchronous:">&nbsp;&nbsp;&nbsp;&nbsp;- setReceiveFilter:withQueue:isAsynchronous:</option>
  100. <option value="//api/name/setSendFilter:withQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- setSendFilter:withQueue:</option>
  101. <option value="//api/name/setSendFilter:withQueue:isAsynchronous:">&nbsp;&nbsp;&nbsp;&nbsp;- setSendFilter:withQueue:isAsynchronous:</option>
  102. <option value="//api/name/setUserData:">&nbsp;&nbsp;&nbsp;&nbsp;- setUserData:</option>
  103. <option value="//api/name/socket4FD">&nbsp;&nbsp;&nbsp;&nbsp;- socket4FD</option>
  104. <option value="//api/name/socket6FD">&nbsp;&nbsp;&nbsp;&nbsp;- socket6FD</option>
  105. <option value="//api/name/socketFD">&nbsp;&nbsp;&nbsp;&nbsp;- socketFD</option>
  106. <option value="//api/name/synchronouslySetDelegate:">&nbsp;&nbsp;&nbsp;&nbsp;- synchronouslySetDelegate:</option>
  107. <option value="//api/name/synchronouslySetDelegate:delegateQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- synchronouslySetDelegate:delegateQueue:</option>
  108. <option value="//api/name/synchronouslySetDelegateQueue:">&nbsp;&nbsp;&nbsp;&nbsp;- synchronouslySetDelegateQueue:</option>
  109. <option value="//api/name/userData">&nbsp;&nbsp;&nbsp;&nbsp;- userData</option>
  110. <option value="//api/name/writeStream">&nbsp;&nbsp;&nbsp;&nbsp;- writeStream</option>
  111. </select>
  112. </li>
  113. </ul>
  114. </header>
  115. <nav id="tocContainer" class="isShowingTOC">
  116. <ul id="toc" role="tree">
  117. <li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
  118. <li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
  119. </ul></li>
  120. <li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#class_methods">Class Methods</a></span><ul>
  121. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/familyFromAddress:">familyFromAddress:</a></span></li>
  122. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/getHost:port:family:fromAddress:">getHost:port:family:fromAddress:</a></span></li>
  123. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/getHost:port:fromAddress:">getHost:port:fromAddress:</a></span></li>
  124. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/hostFromAddress:">hostFromAddress:</a></span></li>
  125. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isIPv4Address:">isIPv4Address:</a></span></li>
  126. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isIPv6Address:">isIPv6Address:</a></span></li>
  127. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/portFromAddress:">portFromAddress:</a></span></li>
  128. </ul></li>
  129. <li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
  130. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/beginReceiving:">beginReceiving:</a></span></li>
  131. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/bindToAddress:error:">bindToAddress:error:</a></span></li>
  132. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/bindToPort:error:">bindToPort:error:</a></span></li>
  133. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/bindToPort:interface:error:">bindToPort:interface:error:</a></span></li>
  134. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/close">close</a></span></li>
  135. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/closeAfterSending">closeAfterSending</a></span></li>
  136. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/connectToAddress:error:">connectToAddress:error:</a></span></li>
  137. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/connectToHost:onPort:error:">connectToHost:onPort:error:</a></span></li>
  138. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/connectedAddress">connectedAddress</a></span></li>
  139. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/connectedHost">connectedHost</a></span></li>
  140. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/connectedPort">connectedPort</a></span></li>
  141. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/delegate">delegate</a></span></li>
  142. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/delegateQueue">delegateQueue</a></span></li>
  143. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/enableBroadcast:error:">enableBroadcast:error:</a></span></li>
  144. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/getDelegate:delegateQueue:">getDelegate:delegateQueue:</a></span></li>
  145. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/init">init</a></span></li>
  146. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/initWithDelegate:delegateQueue:">initWithDelegate:delegateQueue:</a></span></li>
  147. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/initWithDelegate:delegateQueue:socketQueue:">initWithDelegate:delegateQueue:socketQueue:</a></span></li>
  148. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/initWithSocketQueue:">initWithSocketQueue:</a></span></li>
  149. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isClosed">isClosed</a></span></li>
  150. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isConnected">isConnected</a></span></li>
  151. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isIPVersionNeutral">isIPVersionNeutral</a></span></li>
  152. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isIPv4">isIPv4</a></span></li>
  153. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isIPv4Enabled">isIPv4Enabled</a></span></li>
  154. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isIPv4Preferred">isIPv4Preferred</a></span></li>
  155. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isIPv6">isIPv6</a></span></li>
  156. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isIPv6Enabled">isIPv6Enabled</a></span></li>
  157. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isIPv6Preferred">isIPv6Preferred</a></span></li>
  158. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/joinMulticastGroup:error:">joinMulticastGroup:error:</a></span></li>
  159. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/joinMulticastGroup:onInterface:error:">joinMulticastGroup:onInterface:error:</a></span></li>
  160. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/leaveMulticastGroup:error:">leaveMulticastGroup:error:</a></span></li>
  161. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/leaveMulticastGroup:onInterface:error:">leaveMulticastGroup:onInterface:error:</a></span></li>
  162. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/localAddress">localAddress</a></span></li>
  163. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/localAddress_IPv4">localAddress_IPv4</a></span></li>
  164. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/localAddress_IPv6">localAddress_IPv6</a></span></li>
  165. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/localHost">localHost</a></span></li>
  166. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/localHost_IPv4">localHost_IPv4</a></span></li>
  167. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/localHost_IPv6">localHost_IPv6</a></span></li>
  168. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/localPort">localPort</a></span></li>
  169. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/localPort_IPv4">localPort_IPv4</a></span></li>
  170. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/localPort_IPv6">localPort_IPv6</a></span></li>
  171. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/maxReceiveIPv4BufferSize">maxReceiveIPv4BufferSize</a></span></li>
  172. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/maxReceiveIPv6BufferSize">maxReceiveIPv6BufferSize</a></span></li>
  173. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/pauseReceiving">pauseReceiving</a></span></li>
  174. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/performBlock:">performBlock:</a></span></li>
  175. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/readStream">readStream</a></span></li>
  176. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/receiveOnce:">receiveOnce:</a></span></li>
  177. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/sendData:toAddress:withTimeout:tag:">sendData:toAddress:withTimeout:tag:</a></span></li>
  178. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/sendData:toHost:port:withTimeout:tag:">sendData:toHost:port:withTimeout:tag:</a></span></li>
  179. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/sendData:withTimeout:tag:">sendData:withTimeout:tag:</a></span></li>
  180. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setDelegate:">setDelegate:</a></span></li>
  181. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setDelegate:delegateQueue:">setDelegate:delegateQueue:</a></span></li>
  182. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setDelegateQueue:">setDelegateQueue:</a></span></li>
  183. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setIPVersionNeutral">setIPVersionNeutral</a></span></li>
  184. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setIPv4Enabled:">setIPv4Enabled:</a></span></li>
  185. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setIPv6Enabled:">setIPv6Enabled:</a></span></li>
  186. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setMaxReceiveIPv4BufferSize:">setMaxReceiveIPv4BufferSize:</a></span></li>
  187. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setMaxReceiveIPv6BufferSize:">setMaxReceiveIPv6BufferSize:</a></span></li>
  188. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setPreferIPv4">setPreferIPv4</a></span></li>
  189. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setPreferIPv6">setPreferIPv6</a></span></li>
  190. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setReceiveFilter:withQueue:">setReceiveFilter:withQueue:</a></span></li>
  191. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setReceiveFilter:withQueue:isAsynchronous:">setReceiveFilter:withQueue:isAsynchronous:</a></span></li>
  192. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setSendFilter:withQueue:">setSendFilter:withQueue:</a></span></li>
  193. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setSendFilter:withQueue:isAsynchronous:">setSendFilter:withQueue:isAsynchronous:</a></span></li>
  194. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setUserData:">setUserData:</a></span></li>
  195. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/socket4FD">socket4FD</a></span></li>
  196. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/socket6FD">socket6FD</a></span></li>
  197. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/socketFD">socketFD</a></span></li>
  198. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/synchronouslySetDelegate:">synchronouslySetDelegate:</a></span></li>
  199. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/synchronouslySetDelegate:delegateQueue:">synchronouslySetDelegate:delegateQueue:</a></span></li>
  200. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/synchronouslySetDelegateQueue:">synchronouslySetDelegateQueue:</a></span></li>
  201. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/userData">userData</a></span></li>
  202. <li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/writeStream">writeStream</a></span></li>
  203. </ul></li>
  204. </ul>
  205. </nav>
  206. <article>
  207. <div id="contents" class="isShowingTOC" role="main">
  208. <a title="GCDAsyncUdpSocket Class Reference" name="top"></a>
  209. <div class="main-navigation navigation-top">
  210. <ul>
  211. <li><a href="../index.html">Index</a></li>
  212. <li><a href="../hierarchy.html">Hierarchy</a></li>
  213. </ul>
  214. </div>
  215. <div id="header">
  216. <div class="section-header">
  217. <h1 class="title title-header">GCDAsyncUdpSocket Class Reference</h1>
  218. </div>
  219. </div>
  220. <div id="container">
  221. <div class="section section-specification"><table cellspacing="0"><tbody>
  222. <tr>
  223. <td class="specification-title">Inherits from</td>
  224. <td class="specification-value">NSObject</td>
  225. </tr><tr>
  226. <td class="specification-title">Declared in</td>
  227. <td class="specification-value">GCDAsyncUdpSocket.h</td>
  228. </tr>
  229. </tbody></table></div>
  230. <div class="section section-overview">
  231. <a title="Overview" name="overview"></a>
  232. <h2 class="subtitle subtitle-overview">Overview</h2>
  233. <p>You may optionally set a send filter for the socket.<br/>
  234. A filter can provide several interesting possibilities:</p>
  235. <ol>
  236. <li><p>Optional caching of resolved addresses for domain names.<br/>
  237. The cache could later be consulted, resulting in fewer system calls to getaddrinfo.</p></li>
  238. <li><p>Reusable modules of code for bandwidth monitoring.</p></li>
  239. <li><p>Sometimes traffic shapers are needed to simulate real world environments.<br/>
  240. A filter allows you to write custom code to simulate such environments.<br/>
  241. The ability to code this yourself is especially helpful when your simulated environment<br/>
  242. is more complicated than simple traffic shaping (e.g. simulating a cone port restricted router),<br/>
  243. or the system tools to handle this aren&rsquo;t available (e.g. on a mobile device).</p></li>
  244. </ol>
  245. </div>
  246. <div class="section section-tasks">
  247. <a title="Tasks" name="tasks"></a>
  248. <h2 class="subtitle subtitle-tasks">Tasks</h2>
  249. <ul class="task-list">
  250. <li>
  251. <span class="tooltip">
  252. <code><a href="#//api/name/init">&ndash;&nbsp;init</a></code>
  253. <span class="tooltip"><p>GCD<a href="../Classes/AsyncUdpSocket.html">AsyncUdpSocket</a> uses the standard <a href="#//api/name/delegate">delegate</a> paradigm,<br/>
  254. but executes all <a href="#//api/name/delegate">delegate</a> callbacks on a given <a href="#//api/name/delegate">delegate</a> dispatch queue.<br/>
  255. This allows for maximum concurrency, while at the same time providing easy thread safety.</p></span>
  256. </span>
  257. </li><li>
  258. <span class="tooltip">
  259. <code><a href="#//api/name/initWithSocketQueue:">&ndash;&nbsp;initWithSocketQueue:</a></code>
  260. </span>
  261. </li><li>
  262. <span class="tooltip">
  263. <code><a href="#//api/name/initWithDelegate:delegateQueue:">&ndash;&nbsp;initWithDelegate:delegateQueue:</a></code>
  264. </span>
  265. </li><li>
  266. <span class="tooltip">
  267. <code><a href="#//api/name/initWithDelegate:delegateQueue:socketQueue:">&ndash;&nbsp;initWithDelegate:delegateQueue:socketQueue:</a></code>
  268. </span>
  269. </li><li>
  270. <span class="tooltip">
  271. <code><a href="#//api/name/delegate">&ndash;&nbsp;delegate</a></code>
  272. </span>
  273. </li><li>
  274. <span class="tooltip">
  275. <code><a href="#//api/name/setDelegate:">&ndash;&nbsp;setDelegate:</a></code>
  276. </span>
  277. </li><li>
  278. <span class="tooltip">
  279. <code><a href="#//api/name/synchronouslySetDelegate:">&ndash;&nbsp;synchronouslySetDelegate:</a></code>
  280. </span>
  281. </li><li>
  282. <span class="tooltip">
  283. <code><a href="#//api/name/delegateQueue">&ndash;&nbsp;delegateQueue</a></code>
  284. </span>
  285. </li><li>
  286. <span class="tooltip">
  287. <code><a href="#//api/name/setDelegateQueue:">&ndash;&nbsp;setDelegateQueue:</a></code>
  288. </span>
  289. </li><li>
  290. <span class="tooltip">
  291. <code><a href="#//api/name/synchronouslySetDelegateQueue:">&ndash;&nbsp;synchronouslySetDelegateQueue:</a></code>
  292. </span>
  293. </li><li>
  294. <span class="tooltip">
  295. <code><a href="#//api/name/getDelegate:delegateQueue:">&ndash;&nbsp;getDelegate:delegateQueue:</a></code>
  296. </span>
  297. </li><li>
  298. <span class="tooltip">
  299. <code><a href="#//api/name/setDelegate:delegateQueue:">&ndash;&nbsp;setDelegate:delegateQueue:</a></code>
  300. </span>
  301. </li><li>
  302. <span class="tooltip">
  303. <code><a href="#//api/name/synchronouslySetDelegate:delegateQueue:">&ndash;&nbsp;synchronouslySetDelegate:delegateQueue:</a></code>
  304. </span>
  305. </li><li>
  306. <span class="tooltip">
  307. <code><a href="#//api/name/isIPv4Enabled">&ndash;&nbsp;isIPv4Enabled</a></code>
  308. <span class="tooltip"><p>By default, both IPv4 and IPv6 are enabled.</p></span>
  309. </span>
  310. </li><li>
  311. <span class="tooltip">
  312. <code><a href="#//api/name/setIPv4Enabled:">&ndash;&nbsp;setIPv4Enabled:</a></code>
  313. </span>
  314. </li><li>
  315. <span class="tooltip">
  316. <code><a href="#//api/name/isIPv6Enabled">&ndash;&nbsp;isIPv6Enabled</a></code>
  317. </span>
  318. </li><li>
  319. <span class="tooltip">
  320. <code><a href="#//api/name/setIPv6Enabled:">&ndash;&nbsp;setIPv6Enabled:</a></code>
  321. </span>
  322. </li><li>
  323. <span class="tooltip">
  324. <code><a href="#//api/name/isIPv4Preferred">&ndash;&nbsp;isIPv4Preferred</a></code>
  325. </span>
  326. </li><li>
  327. <span class="tooltip">
  328. <code><a href="#//api/name/isIPv6Preferred">&ndash;&nbsp;isIPv6Preferred</a></code>
  329. </span>
  330. </li><li>
  331. <span class="tooltip">
  332. <code><a href="#//api/name/isIPVersionNeutral">&ndash;&nbsp;isIPVersionNeutral</a></code>
  333. </span>
  334. </li><li>
  335. <span class="tooltip">
  336. <code><a href="#//api/name/setPreferIPv4">&ndash;&nbsp;setPreferIPv4</a></code>
  337. </span>
  338. </li><li>
  339. <span class="tooltip">
  340. <code><a href="#//api/name/setPreferIPv6">&ndash;&nbsp;setPreferIPv6</a></code>
  341. </span>
  342. </li><li>
  343. <span class="tooltip">
  344. <code><a href="#//api/name/setIPVersionNeutral">&ndash;&nbsp;setIPVersionNeutral</a></code>
  345. </span>
  346. </li><li>
  347. <span class="tooltip">
  348. <code><a href="#//api/name/maxReceiveIPv4BufferSize">&ndash;&nbsp;maxReceiveIPv4BufferSize</a></code>
  349. <span class="tooltip"><p>Gets/Sets the maximum size of the buffer that will be allocated for receive operations.<br/>
  350. The default maximum size is 9216 bytes.</p></span>
  351. </span>
  352. </li><li>
  353. <span class="tooltip">
  354. <code><a href="#//api/name/setMaxReceiveIPv4BufferSize:">&ndash;&nbsp;setMaxReceiveIPv4BufferSize:</a></code>
  355. </span>
  356. </li><li>
  357. <span class="tooltip">
  358. <code><a href="#//api/name/maxReceiveIPv6BufferSize">&ndash;&nbsp;maxReceiveIPv6BufferSize</a></code>
  359. </span>
  360. </li><li>
  361. <span class="tooltip">
  362. <code><a href="#//api/name/setMaxReceiveIPv6BufferSize:">&ndash;&nbsp;setMaxReceiveIPv6BufferSize:</a></code>
  363. </span>
  364. </li><li>
  365. <span class="tooltip">
  366. <code><a href="#//api/name/userData">&ndash;&nbsp;userData</a></code>
  367. <span class="tooltip"><p>User data allows you to associate arbitrary information with the socket.<br/>
  368. This data is not used internally in any way.</p></span>
  369. </span>
  370. </li><li>
  371. <span class="tooltip">
  372. <code><a href="#//api/name/setUserData:">&ndash;&nbsp;setUserData:</a></code>
  373. </span>
  374. </li><li>
  375. <span class="tooltip">
  376. <code><a href="#//api/name/localAddress">&ndash;&nbsp;localAddress</a></code>
  377. <span class="tooltip"><p>Returns the local address info for the socket.</p></span>
  378. </span>
  379. </li><li>
  380. <span class="tooltip">
  381. <code><a href="#//api/name/localHost">&ndash;&nbsp;localHost</a></code>
  382. </span>
  383. </li><li>
  384. <span class="tooltip">
  385. <code><a href="#//api/name/localPort">&ndash;&nbsp;localPort</a></code>
  386. </span>
  387. </li><li>
  388. <span class="tooltip">
  389. <code><a href="#//api/name/localAddress_IPv4">&ndash;&nbsp;localAddress_IPv4</a></code>
  390. </span>
  391. </li><li>
  392. <span class="tooltip">
  393. <code><a href="#//api/name/localHost_IPv4">&ndash;&nbsp;localHost_IPv4</a></code>
  394. </span>
  395. </li><li>
  396. <span class="tooltip">
  397. <code><a href="#//api/name/localPort_IPv4">&ndash;&nbsp;localPort_IPv4</a></code>
  398. </span>
  399. </li><li>
  400. <span class="tooltip">
  401. <code><a href="#//api/name/localAddress_IPv6">&ndash;&nbsp;localAddress_IPv6</a></code>
  402. </span>
  403. </li><li>
  404. <span class="tooltip">
  405. <code><a href="#//api/name/localHost_IPv6">&ndash;&nbsp;localHost_IPv6</a></code>
  406. </span>
  407. </li><li>
  408. <span class="tooltip">
  409. <code><a href="#//api/name/localPort_IPv6">&ndash;&nbsp;localPort_IPv6</a></code>
  410. </span>
  411. </li><li>
  412. <span class="tooltip">
  413. <code><a href="#//api/name/connectedAddress">&ndash;&nbsp;connectedAddress</a></code>
  414. <span class="tooltip"><p>Returns the remote address info for the socket.</p></span>
  415. </span>
  416. </li><li>
  417. <span class="tooltip">
  418. <code><a href="#//api/name/connectedHost">&ndash;&nbsp;connectedHost</a></code>
  419. </span>
  420. </li><li>
  421. <span class="tooltip">
  422. <code><a href="#//api/name/connectedPort">&ndash;&nbsp;connectedPort</a></code>
  423. </span>
  424. </li><li>
  425. <span class="tooltip">
  426. <code><a href="#//api/name/isConnected">&ndash;&nbsp;isConnected</a></code>
  427. <span class="tooltip"><p>Returns whether or not this socket has been connected to a single host.<br/>
  428. By design, UDP is a connectionless protocol, and connecting is not needed.<br/>
  429. If connected, the socket will only be able to send/receive data to/from the connected host.</p></span>
  430. </span>
  431. </li><li>
  432. <span class="tooltip">
  433. <code><a href="#//api/name/isClosed">&ndash;&nbsp;isClosed</a></code>
  434. <span class="tooltip"><p>Returns whether or not this socket has been closed.<br/>
  435. The only way a socket can be closed is if you explicitly call one of the <a href="#//api/name/close">close</a> methods.</p></span>
  436. </span>
  437. </li><li>
  438. <span class="tooltip">
  439. <code><a href="#//api/name/isIPv4">&ndash;&nbsp;isIPv4</a></code>
  440. <span class="tooltip"><p>Returns whether or not this socket is IPv4.</p></span>
  441. </span>
  442. </li><li>
  443. <span class="tooltip">
  444. <code><a href="#//api/name/isIPv6">&ndash;&nbsp;isIPv6</a></code>
  445. <span class="tooltip"><p>Returns whether or not this socket is IPv6.</p></span>
  446. </span>
  447. </li><li>
  448. <span class="tooltip">
  449. <code><a href="#//api/name/bindToPort:error:">&ndash;&nbsp;bindToPort:error:</a></code>
  450. <span class="tooltip"><p>Binds the UDP socket to the given port.<br/>
  451. Binding should be done for server sockets that receive data prior to sending it.<br/>
  452. Client sockets can skip binding,<br/>
  453. as the OS will automatically assign the socket an available port when it starts sending data.</p></span>
  454. </span>
  455. </li><li>
  456. <span class="tooltip">
  457. <code><a href="#//api/name/bindToPort:interface:error:">&ndash;&nbsp;bindToPort:interface:error:</a></code>
  458. <span class="tooltip"><p>Binds the UDP socket to the given port and optional interface.<br/>
  459. Binding should be done for server sockets that receive data prior to sending it.<br/>
  460. Client sockets can skip binding,<br/>
  461. as the OS will automatically assign the socket an available port when it starts sending data.</p></span>
  462. </span>
  463. </li><li>
  464. <span class="tooltip">
  465. <code><a href="#//api/name/bindToAddress:error:">&ndash;&nbsp;bindToAddress:error:</a></code>
  466. <span class="tooltip"><p>Binds the UDP socket to the given address, specified as a sockaddr structure wrapped in a NSData object.</p></span>
  467. </span>
  468. </li><li>
  469. <span class="tooltip">
  470. <code><a href="#//api/name/connectToHost:onPort:error:">&ndash;&nbsp;connectToHost:onPort:error:</a></code>
  471. <span class="tooltip"><p>Connects the UDP socket to the given host and port.<br/>
  472. By design, UDP is a connectionless protocol, and connecting is not needed.</p></span>
  473. </span>
  474. </li><li>
  475. <span class="tooltip">
  476. <code><a href="#//api/name/connectToAddress:error:">&ndash;&nbsp;connectToAddress:error:</a></code>
  477. <span class="tooltip"><p>Connects the UDP socket to the given address, specified as a sockaddr structure wrapped in a NSData object.</p></span>
  478. </span>
  479. </li><li>
  480. <span class="tooltip">
  481. <code><a href="#//api/name/joinMulticastGroup:error:">&ndash;&nbsp;joinMulticastGroup:error:</a></code>
  482. <span class="tooltip"><p>Join multicast group.<br/>
  483. Group should be an IP address (eg @&ldquo;225.228.0.1&rdquo;).</p></span>
  484. </span>
  485. </li><li>
  486. <span class="tooltip">
  487. <code><a href="#//api/name/joinMulticastGroup:onInterface:error:">&ndash;&nbsp;joinMulticastGroup:onInterface:error:</a></code>
  488. <span class="tooltip"><p>Join multicast group.<br/>
  489. Group should be an IP address (eg @&ldquo;225.228.0.1&rdquo;).<br/>
  490. The interface may be a name (e.g. &ldquo;en1&rdquo; or &ldquo;lo0&rdquo;) or the corresponding IP address (e.g. &ldquo;192.168.4.35&rdquo;).</p></span>
  491. </span>
  492. </li><li>
  493. <span class="tooltip">
  494. <code><a href="#//api/name/leaveMulticastGroup:error:">&ndash;&nbsp;leaveMulticastGroup:error:</a></code>
  495. </span>
  496. </li><li>
  497. <span class="tooltip">
  498. <code><a href="#//api/name/leaveMulticastGroup:onInterface:error:">&ndash;&nbsp;leaveMulticastGroup:onInterface:error:</a></code>
  499. </span>
  500. </li><li>
  501. <span class="tooltip">
  502. <code><a href="#//api/name/enableBroadcast:error:">&ndash;&nbsp;enableBroadcast:error:</a></code>
  503. <span class="tooltip"><p>By default, the underlying socket in the OS will not allow you to send broadcast messages.<br/>
  504. In order to send broadcast messages, you need to enable this functionality in the socket.</p></span>
  505. </span>
  506. </li><li>
  507. <span class="tooltip">
  508. <code><a href="#//api/name/sendData:withTimeout:tag:">&ndash;&nbsp;sendData:withTimeout:tag:</a></code>
  509. <span class="tooltip"><p>Asynchronously sends the given data, with the given timeout and tag.</p></span>
  510. </span>
  511. </li><li>
  512. <span class="tooltip">
  513. <code><a href="#//api/name/sendData:toHost:port:withTimeout:tag:">&ndash;&nbsp;sendData:toHost:port:withTimeout:tag:</a></code>
  514. <span class="tooltip"><p>Asynchronously sends the given data, with the given timeout and tag, to the given host and port.</p></span>
  515. </span>
  516. </li><li>
  517. <span class="tooltip">
  518. <code><a href="#//api/name/sendData:toAddress:withTimeout:tag:">&ndash;&nbsp;sendData:toAddress:withTimeout:tag:</a></code>
  519. <span class="tooltip"><p>Asynchronously sends the given data, with the given timeout and tag, to the given address.</p></span>
  520. </span>
  521. </li><li>
  522. <span class="tooltip">
  523. <code><a href="#//api/name/setSendFilter:withQueue:">&ndash;&nbsp;setSendFilter:withQueue:</a></code>
  524. <span class="tooltip"><p>You may optionally set a send filter for the socket.<br/>
  525. A filter can provide several interesting possibilities:</p></span>
  526. </span>
  527. </li><li>
  528. <span class="tooltip">
  529. <code><a href="#//api/name/setSendFilter:withQueue:isAsynchronous:">&ndash;&nbsp;setSendFilter:withQueue:isAsynchronous:</a></code>
  530. <span class="tooltip"><p>The receive filter can be run via dispatch_async or dispatch_sync.<br/>
  531. Most typical situations call for asynchronous operation.</p></span>
  532. </span>
  533. </li><li>
  534. <span class="tooltip">
  535. <code><a href="#//api/name/receiveOnce:">&ndash;&nbsp;receiveOnce:</a></code>
  536. <span class="tooltip"><p>There are two modes of operation for receiving packets: one-at-a-time &amp; continuous.</p></span>
  537. </span>
  538. </li><li>
  539. <span class="tooltip">
  540. <code><a href="#//api/name/beginReceiving:">&ndash;&nbsp;beginReceiving:</a></code>
  541. <span class="tooltip"><p>There are two modes of operation for receiving packets: one-at-a-time &amp; continuous.</p></span>
  542. </span>
  543. </li><li>
  544. <span class="tooltip">
  545. <code><a href="#//api/name/pauseReceiving">&ndash;&nbsp;pauseReceiving</a></code>
  546. <span class="tooltip"><p>If the socket is currently receiving (beginReceiving has been called), this method pauses the receiving.<br/>
  547. That is, it won&rsquo;t read any more packets from the underlying OS socket until beginReceiving is called again.</p></span>
  548. </span>
  549. </li><li>
  550. <span class="tooltip">
  551. <code><a href="#//api/name/setReceiveFilter:withQueue:">&ndash;&nbsp;setReceiveFilter:withQueue:</a></code>
  552. <span class="tooltip"><p>You may optionally set a receive filter for the socket.<br/>
  553. This receive filter may be set to run in its own queue (independent of <a href="#//api/name/delegate">delegate</a> queue).</p></span>
  554. </span>
  555. </li><li>
  556. <span class="tooltip">
  557. <code><a href="#//api/name/setReceiveFilter:withQueue:isAsynchronous:">&ndash;&nbsp;setReceiveFilter:withQueue:isAsynchronous:</a></code>
  558. <span class="tooltip"><p>The receive filter can be run via dispatch_async or dispatch_sync.<br/>
  559. Most typical situations call for asynchronous operation.</p></span>
  560. </span>
  561. </li><li>
  562. <span class="tooltip">
  563. <code><a href="#//api/name/close">&ndash;&nbsp;close</a></code>
  564. <span class="tooltip"><p>Immediately closes the underlying socket.<br/>
  565. Any pending send operations are discarded.</p></span>
  566. </span>
  567. </li><li>
  568. <span class="tooltip">
  569. <code><a href="#//api/name/closeAfterSending">&ndash;&nbsp;closeAfterSending</a></code>
  570. <span class="tooltip"><p>Closes the underlying socket after all pending send operations have been sent.</p></span>
  571. </span>
  572. </li><li>
  573. <span class="tooltip">
  574. <code><a href="#//api/name/performBlock:">&ndash;&nbsp;performBlock:</a></code>
  575. <span class="tooltip"><p>It&rsquo;s not thread-safe to access certain variables from outside the socket&rsquo;s internal queue.</p></span>
  576. </span>
  577. </li><li>
  578. <span class="tooltip">
  579. <code><a href="#//api/name/socketFD">&ndash;&nbsp;socketFD</a></code>
  580. <span class="tooltip"><p>These methods are only available from within the context of a <a href="#//api/name/performBlock:">performBlock:</a> invocation.<br/>
  581. See the documentation for the <a href="#//api/name/performBlock:">performBlock:</a> method above.</p></span>
  582. </span>
  583. </li><li>
  584. <span class="tooltip">
  585. <code><a href="#//api/name/socket4FD">&ndash;&nbsp;socket4FD</a></code>
  586. </span>
  587. </li><li>
  588. <span class="tooltip">
  589. <code><a href="#//api/name/socket6FD">&ndash;&nbsp;socket6FD</a></code>
  590. </span>
  591. </li><li>
  592. <span class="tooltip">
  593. <code><a href="#//api/name/readStream">&ndash;&nbsp;readStream</a></code>
  594. <span class="tooltip"><p>These methods are only available from within the context of a <a href="#//api/name/performBlock:">performBlock:</a> invocation.<br/>
  595. See the documentation for the <a href="#//api/name/performBlock:">performBlock:</a> method above.</p></span>
  596. </span>
  597. </li><li>
  598. <span class="tooltip">
  599. <code><a href="#//api/name/writeStream">&ndash;&nbsp;writeStream</a></code>
  600. </span>
  601. </li><li>
  602. <span class="tooltip">
  603. <code><a href="#//api/name/hostFromAddress:">+&nbsp;hostFromAddress:</a></code>
  604. <span class="tooltip"><p>Extracting host/port/family information from raw address data.</p></span>
  605. </span>
  606. </li><li>
  607. <span class="tooltip">
  608. <code><a href="#//api/name/portFromAddress:">+&nbsp;portFromAddress:</a></code>
  609. </span>
  610. </li><li>
  611. <span class="tooltip">
  612. <code><a href="#//api/name/familyFromAddress:">+&nbsp;familyFromAddress:</a></code>
  613. </span>
  614. </li><li>
  615. <span class="tooltip">
  616. <code><a href="#//api/name/isIPv4Address:">+&nbsp;isIPv4Address:</a></code>
  617. </span>
  618. </li><li>
  619. <span class="tooltip">
  620. <code><a href="#//api/name/isIPv6Address:">+&nbsp;isIPv6Address:</a></code>
  621. </span>
  622. </li><li>
  623. <span class="tooltip">
  624. <code><a href="#//api/name/getHost:port:fromAddress:">+&nbsp;getHost:port:fromAddress:</a></code>
  625. </span>
  626. </li><li>
  627. <span class="tooltip">
  628. <code><a href="#//api/name/getHost:port:family:fromAddress:">+&nbsp;getHost:port:family:fromAddress:</a></code>
  629. </span>
  630. </li>
  631. </ul>
  632. </div>
  633. <div class="section section-methods">
  634. <a title="Class Methods" name="class_methods"></a>
  635. <h2 class="subtitle subtitle-methods">Class Methods</h2>
  636. <div class="section-method">
  637. <a name="//api/name/familyFromAddress:" title="familyFromAddress:"></a>
  638. <h3 class="subsubtitle method-title">familyFromAddress:</h3>
  639. <div class="method-subsection method-declaration"><code>+ (int)familyFromAddress:(NSData *)<em>address</em></code></div>
  640. </div>
  641. <div class="section-method">
  642. <a name="//api/name/getHost:port:family:fromAddress:" title="getHost:port:family:fromAddress:"></a>
  643. <h3 class="subsubtitle method-title">getHost:port:family:fromAddress:</h3>
  644. <div class="method-subsection method-declaration"><code>+ (BOOL)getHost:(NSString **)<em>hostPtr</em> port:(uint16_t *)<em>portPtr</em> family:(int *)<em>afPtr</em> fromAddress:(NSData *)<em>address</em></code></div>
  645. </div>
  646. <div class="section-method">
  647. <a name="//api/name/getHost:port:fromAddress:" title="getHost:port:fromAddress:"></a>
  648. <h3 class="subsubtitle method-title">getHost:port:fromAddress:</h3>
  649. <div class="method-subsection method-declaration"><code>+ (BOOL)getHost:(NSString **)<em>hostPtr</em> port:(uint16_t *)<em>portPtr</em> fromAddress:(NSData *)<em>address</em></code></div>
  650. </div>
  651. <div class="section-method">
  652. <a name="//api/name/hostFromAddress:" title="hostFromAddress:"></a>
  653. <h3 class="subsubtitle method-title">hostFromAddress:</h3>
  654. <div class="method-subsection brief-description">
  655. <p>Extracting host/port/family information from raw address data.</p>
  656. </div>
  657. <div class="method-subsection method-declaration"><code>+ (NSString *)hostFromAddress:(NSData *)<em>address</em></code></div>
  658. <div class="method-subsection discussion-section">
  659. <h4 class="method-subtitle">Discussion</h4>
  660. <p>Extracting host/port/family information from raw address data.</p>
  661. </div>
  662. <div class="method-subsection declared-in-section">
  663. <h4 class="method-subtitle">Declared In</h4>
  664. <code class="declared-in-ref">GCDAsyncUdpSocket.h</code><br />
  665. </div>
  666. </div>
  667. <div class="section-method">
  668. <a name="//api/name/isIPv4Address:" title="isIPv4Address:"></a>
  669. <h3 class="subsubtitle method-title">isIPv4Address:</h3>
  670. <div class="method-subsection method-declaration"><code>+ (BOOL)isIPv4Address:(NSData *)<em>address</em></code></div>
  671. </div>
  672. <div class="section-method">
  673. <a name="//api/name/isIPv6Address:" title="isIPv6Address:"></a>
  674. <h3 class="subsubtitle method-title">isIPv6Address:</h3>
  675. <div class="method-subsection method-declaration"><code>+ (BOOL)isIPv6Address:(NSData *)<em>address</em></code></div>
  676. </div>
  677. <div class="section-method">
  678. <a name="//api/name/portFromAddress:" title="portFromAddress:"></a>
  679. <h3 class="subsubtitle method-title">portFromAddress:</h3>
  680. <div class="method-subsection method-declaration"><code>+ (uint16_t)portFromAddress:(NSData *)<em>address</em></code></div>
  681. </div>
  682. </div>
  683. <div class="section section-methods">
  684. <a title="Instance Methods" name="instance_methods"></a>
  685. <h2 class="subtitle subtitle-methods">Instance Methods</h2>
  686. <div class="section-method">
  687. <a name="//api/name/beginReceiving:" title="beginReceiving:"></a>
  688. <h3 class="subsubtitle method-title">beginReceiving:</h3>
  689. <div class="method-subsection brief-description">
  690. <p>There are two modes of operation for receiving packets: one-at-a-time &amp; continuous.</p>
  691. </div>
  692. <div class="method-subsection method-declaration"><code>- (BOOL)beginReceiving:(NSError **)<em>errPtr</em></code></div>
  693. <div class="method-subsection discussion-section">
  694. <h4 class="method-subtitle">Discussion</h4>
  695. <p>There are two modes of operation for receiving packets: one-at-a-time &amp; continuous.</p>
  696. <p>In one-at-a-time mode, you call receiveOnce everytime your <a href="#//api/name/delegate">delegate</a> is ready to process an incoming udp packet.<br/>
  697. Receiving packets one-at-a-time may be better suited for implementing certain state machine code,<br/>
  698. where your state machine may not always be ready to process incoming packets.</p>
  699. <p>In continuous mode, the <a href="#//api/name/delegate">delegate</a> is invoked immediately everytime incoming udp packets are received.<br/>
  700. Receiving packets continuously is better suited to real-time streaming applications.</p>
  701. <p>You may switch back and forth between one-at-a-time mode and continuous mode.<br/>
  702. If the socket is currently in one-at-a-time mode, calling this method will switch it to continuous mode.</p>
  703. <p>For every received packet (not filtered by the optional receive filter),<br/>
  704. the <a href="#//api/name/delegate">delegate</a> method (udpSocket:didReceiveData:fromAddress:withFilterContext:) is invoked.</p>
  705. <p>If the socket is able to begin receiving packets, this method returns YES.<br/>
  706. Otherwise it returns NO, and sets the errPtr with appropriate error information.</p>
  707. <p>An example error:<br/>
  708. You created a udp socket to act as a server, and immediately called receive.<br/>
  709. You forgot to first bind the socket to a port number, and received a error with a message like:<br/>
  710. &ldquo;Must bind socket before you can receive data.&rdquo;</p>
  711. </div>
  712. <div class="method-subsection declared-in-section">
  713. <h4 class="method-subtitle">Declared In</h4>
  714. <code class="declared-in-ref">GCDAsyncUdpSocket.h</code><br />
  715. </div>
  716. </div>
  717. <div class="section-method">
  718. <a name="//api/name/bindToAddress:error:" title="bindToAddress:error:"></a>
  719. <h3 class="subsubtitle method-title">bindToAddress:error:</h3>
  720. <div class="method-subsection brief-description">
  721. <p>Binds the UDP socket to the given address, specified as a sockaddr structure wrapped in a NSData object.</p>
  722. </div>
  723. <div class="method-subsection method-declaration"><code>- (BOOL)bindToAddress:(NSData *)<em>localAddr</em> error:(NSError **)<em>errPtr</em></code></div>
  724. <div class="method-subsection discussion-section">
  725. <h4 class="method-subtitle">Discussion</h4>
  726. <p>Binds the UDP socket to the given address, specified as a sockaddr structure wrapped in a NSData object.</p>
  727. <p>If you have an existing struct sockaddr you can convert it to a NSData object like so:<br/>
  728. struct sockaddr sa -> NSData <em>dsa = [NSData dataWithBytes:&amp;remoteAddr length:remoteAddr.sa_len];<br/>
  729. struct sockaddr </em>sa -> NSData *dsa = [NSData dataWithBytes:remoteAddr length:remoteAddr->sa_len];</p>
  730. <p>Binding should be done for server sockets that receive data prior to sending it.<br/>
  731. Client sockets can skip binding,<br/>
  732. as the OS will automatically assign the socket an available port when it starts sending data.</p>
  733. <p>You cannot bind a socket after its been connected.<br/>
  734. You can only bind a socket once.<br/>
  735. You can still connect a socket (if desired) after binding.</p>
  736. <p>On success, returns YES.<br/>
  737. Otherwise returns NO, and sets errPtr. If you don&rsquo;t care about the error, you can pass NULL for errPtr.</p>
  738. </div>
  739. <div class="method-subsection declared-in-section">
  740. <h4 class="method-subtitle">Declared In</h4>
  741. <code class="declared-in-ref">GCDAsyncUdpSocket.h</code><br />
  742. </div>
  743. </div>
  744. <div class="section-method">
  745. <a name="//api/name/bindToPort:error:" title="bindToPort:error:"></a>
  746. <h3 class="subsubtitle method-title">bindToPort:error:</h3>
  747. <div class="method-subsection brief-description">
  748. <p>Binds the UDP socket to the given port.<br/>
  749. Binding should be done for server sockets that receive data prior to sending it.<br/>
  750. Client sockets can skip binding,<br/>
  751. as the OS will automatically assign the socket an available port when it starts sending data.</p>
  752. </div>
  753. <div class="method-subsection method-declaration"><code>- (BOOL)bindToPort:(uint16_t)<em>port</em> error:(NSError **)<em>errPtr</em></code></div>
  754. <div class="method-subsection discussion-section">
  755. <h4 class="method-subtitle">Discussion</h4>
  756. <p>Binds the UDP socket to the given port.<br/>
  757. Binding should be done for server sockets that receive data prior to sending it.<br/>
  758. Client socke

Large files files are truncated, but you can click here to view the full file