📄 ipsock_8h-source.html
字号:
00159 <span class="comment"> * Revision 1.26 1996/11/16 10:48:49 robertj</span>00160 <span class="comment"> * Fixed missing const in PIPSocket::Address stream output operator..</span>00161 <span class="comment"> *</span>00162 <span class="comment"> * Revision 1.25 1996/11/04 03:40:54 robertj</span>00163 <span class="comment"> * Moved address printer from inline to source.</span>00164 <span class="comment"> *</span>00165 <span class="comment"> * Revision 1.24 1996/09/14 13:09:21 robertj</span>00166 <span class="comment"> * Major upgrade:</span>00167 <span class="comment"> * rearranged sockets to help support IPX.</span>00168 <span class="comment"> * added indirect channel class and moved all protocols to descend from it,</span>00169 <span class="comment"> * separating the protocol from the low level byte transport.</span>00170 <span class="comment"> *</span>00171 <span class="comment"> * Revision 1.23 1996/08/25 09:33:55 robertj</span>00172 <span class="comment"> * Added function to detect "local" host name.</span>00173 <span class="comment"> *</span>00174 <span class="comment"> * Revision 1.22 1996/03/26 00:51:13 robertj</span>00175 <span class="comment"> * Added GetLocalAddress() variant that returns port number as well.</span>00176 <span class="comment"> *</span>00177 <span class="comment"> * Revision 1.21 1996/03/16 04:41:30 robertj</span>00178 <span class="comment"> * Changed all the get host name and get host address functions to be more consistent.</span>00179 <span class="comment"> *</span>00180 <span class="comment"> * Revision 1.20 1996/03/03 07:37:56 robertj</span>00181 <span class="comment"> * Added Reusability clause to the Listen() function on sockets.</span>00182 <span class="comment"> *</span>00183 <span class="comment"> * Revision 1.19 1996/02/25 03:00:31 robertj</span>00184 <span class="comment"> * Added operator<< to PIPSocket::Address.</span>00185 <span class="comment"> * Moved some socket functions to platform dependent code.</span>00186 <span class="comment"> *</span>00187 <span class="comment"> * Revision 1.18 1996/02/08 12:11:19 robertj</span>00188 <span class="comment"> * Added GetPeerAddress that returns a port.</span>00189 <span class="comment"> *</span>00190 <span class="comment"> * Revision 1.17 1996/01/28 14:07:31 robertj</span>00191 <span class="comment"> * Changed service parameter to PString for ease of use in GetPortByService function</span>00192 <span class="comment"> * Fixed up comments.</span>00193 <span class="comment"> *</span>00194 <span class="comment"> * Revision 1.16 1995/12/23 03:44:59 robertj</span>00195 <span class="comment"> * Fixed unix portability issues.</span>00196 <span class="comment"> *</span>00197 <span class="comment"> * Revision 1.15 1995/12/10 11:32:11 robertj</span>00198 <span class="comment"> * Numerous fixes for sockets.</span>00199 <span class="comment"> *</span>00200 <span class="comment"> * Revision 1.14 1995/10/14 14:57:26 robertj</span>00201 <span class="comment"> * Added internet address to string conversion functionality.</span>00202 <span class="comment"> *</span>00203 <span class="comment"> * Revision 1.13 1995/07/02 01:18:19 robertj</span>00204 <span class="comment"> * Added static functions to get the current host name/address.</span>00205 <span class="comment"> *</span>00206 <span class="comment"> * Revision 1.12 1995/06/17 00:41:40 robertj</span>00207 <span class="comment"> * More logical design of port numbers and service names.</span>00208 <span class="comment"> *</span>00209 <span class="comment"> * Revision 1.11 1995/03/18 06:26:44 robertj</span>00210 <span class="comment"> * Changed IP address variable for GNU compatibility.</span>00211 <span class="comment"> *</span>00212 <span class="comment"> * Revision 1.10 1995/03/14 12:41:38 robertj</span>00213 <span class="comment"> * Updated documentation to use HTML codes.</span>00214 <span class="comment"> *</span>00215 <span class="comment"> * Revision 1.9 1995/03/12 04:38:41 robertj</span>00216 <span class="comment"> * Added more functionality.</span>00217 <span class="comment"> *</span>00218 <span class="comment"> * Revision 1.8 1995/01/02 12:28:24 robertj</span>00219 <span class="comment"> * Documentation.</span>00220 <span class="comment"> * Added more socket functions.</span>00221 <span class="comment"> *</span>00222 <span class="comment"> * Revision 1.7 1995/01/01 01:07:33 robertj</span>00223 <span class="comment"> * More implementation.</span>00224 <span class="comment"> *</span>00225 <span class="comment"> * Revision 1.6 1994/12/15 12:47:14 robertj</span>00226 <span class="comment"> * Documentation.</span>00227 <span class="comment"> *</span>00228 <span class="comment"> * Revision 1.5 1994/08/23 11:32:52 robertj</span>00229 <span class="comment"> * Oops</span>00230 <span class="comment"> *</span>00231 <span class="comment"> * Revision 1.4 1994/08/22 00:46:48 robertj</span>00232 <span class="comment"> * Added pragma fro GNU C++ compiler.</span>00233 <span class="comment"> *</span>00234 <span class="comment"> * Revision 1.3 1994/08/21 23:43:02 robertj</span>00235 <span class="comment"> * Spelt Berkeley correctly.</span>00236 <span class="comment"> *</span>00237 <span class="comment"> * Revision 1.2 1994/07/25 03:36:03 robertj</span>00238 <span class="comment"> * Added sockets to common, normalising to same comment standard.</span>00239 <span class="comment"> *</span>00240 <span class="comment"> */</span>00241 00242 <span class="preprocessor">#ifndef _PIPSOCKET</span>00243 <span class="preprocessor"></span><span class="preprocessor">#define _PIPSOCKET</span>00244 <span class="preprocessor"></span>00245 <span class="preprocessor">#ifdef P_USE_PRAGMA</span>00246 <span class="preprocessor"></span><span class="preprocessor">#pragma interface</span>00247 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00248 <span class="preprocessor"></span>00249 <span class="preprocessor">#include <<a class="code" href="socket_8h.html">ptlib/socket.h</a>></span>00250 <a name="l00258"></a><a class="code" href="classPIPSocket.html">00258</a> <span class="keyword">class </span><a class="code" href="classPIPSocket.html">PIPSocket</a> : <span class="keyword">public</span> <a class="code" href="classPSocket.html">PSocket</a>00259 {00260 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPIPSocket.html">PIPSocket</a>, <a class="code" href="classPSocket.html">PSocket</a>);00261 <span class="keyword">protected</span>:00262 <span class="comment">/* Create a new Internet Protocol socket based on the port number</span>00263 <span class="comment"> specified.</span>00264 <span class="comment"> */</span>00265 <a class="code" href="classPIPSocket.html#b0">PIPSocket</a>();00266 00267 <span class="keyword">public</span>:<a name="l00271"></a><a class="code" href="classPIPSocket_1_1Address.html">00271</a> <span class="keyword">class </span><a class="code" href="classPIPSocket_1_1Address.html">Address</a> : <span class="keyword">public</span> <a class="code" href="classPObject.html">PObject</a> {00272 <span class="keyword">public</span>:00273 00276 00277 <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a>();00278 00282 <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a>(<span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & dotNotation);00283 00285 <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a>(PINDEX len, <span class="keyword">const</span> BYTE * bytes);00286 00288 <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a>(BYTE b1, BYTE b2, BYTE b3, BYTE b4);00289 00291 <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a>(DWORD dw);00292 00294 <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a>(<span class="keyword">const</span> in_addr & addr);00295 00296 <span class="preprocessor">#if P_HAS_IPV6</span>00297 <span class="preprocessor"></span>00298 <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a>(<span class="keyword">const</span> in6_addr & addr);00299 00302 <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> ai_family, <span class="keyword">const</span> <span class="keywordtype">int</span> ai_addrlen,<span class="keyword">struct</span> sockaddr *ai_addr);00303 <span class="preprocessor">#endif</span>00304 <span class="preprocessor"></span>00305 <span class="preprocessor">#ifdef __NUCLEUS_NET__</span>00306 <span class="preprocessor"></span> <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a>(<span class="keyword">const</span> <span class="keyword">struct</span> id_struct & addr);00307 <a class="code" href="classPIPSocket_1_1Address.html">Address</a> & <a class="code" href="classPIPSocket_1_1Address.html#z161_6">operator=</a>(<span class="keyword">const</span> <span class="keyword">struct</span> id_struct & addr);00308 <span class="preprocessor">#endif</span>00309 <span class="preprocessor"></span>00311 <a class="code" href="classPIPSocket_1_1Address.html">Address</a> & <a class="code" href="classPIPSocket_1_1Address.html#z161_6">operator=</a>(<span class="keyword">const</span> in_addr & addr);00312 00313 <span class="preprocessor">#if P_HAS_IPV6</span>00314 <span class="preprocessor"></span>00315 <a class="code" href="classPIPSocket_1_1Address.html">Address</a> & <a class="code" href="classPIPSocket_1_1Address.html#z161_6">operator=</a>(<span class="keyword">const</span> in6_addr & addr);00316 <span class="preprocessor">#endif</span>00317 <span class="preprocessor"></span>00319 <a class="code" href="classPIPSocket_1_1Address.html">Address</a> & <a class="code" href="classPIPSocket_1_1Address.html#z161_6">operator=</a>(<span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & dotNotation);00320 00322 <a class="code" href="classPIPSocket_1_1Address.html">Address</a> & <a class="code" href="classPIPSocket_1_1Address.html#z161_6">operator=</a>(DWORD dw);00324 00326 <a class="code" href="classPObject.html#z199_0">Comparison</a> <a class="code" href="classPIPSocket_1_1Address.html#a0">Compare</a>(<span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & obj) <span class="keyword">const</span>;<a name="l00327"></a><a class="code" href="classPIPSocket_1_1Address.html#a1">00327</a> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(<span class="keyword">const</span> <a class="code" href="classPIPSocket_1_1Address.html">Address</a> & addr)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPIPSocket_1_1Address.html#a0">Compare</a>(addr) == <a class="code" href="classPObject.html#z199_0s1">EqualTo</a>; }<a name="l00328"></a><a class="code" href="classPIPSocket_1_1Address.html#a2">00328</a> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a2">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classPIPSocket_1_1Address.html">Address</a> & addr)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPIPSocket_1_1Address.html#a0">Compare</a>(addr) != <a class="code" href="classPObject.html#z199_0s1">EqualTo</a>; }00329 <span class="preprocessor">#if P_HAS_IPV6</span>00330 <span class="preprocessor"></span> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(in6_addr & addr) <span class="keyword">const</span>;00331 <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a2">operator!=</a>(in6_addr & addr)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(addr); }00332 <span class="preprocessor">#endif</span>00333 <span class="preprocessor"></span> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(in_addr & addr) <span class="keyword">const</span>;<a name="l00334"></a><a class="code" href="classPIPSocket_1_1Address.html#a4">00334</a> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a2">operator!=</a>(in_addr & addr)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(addr); }00335 <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(DWORD dw) <span class="keyword">const</span>;<a name="l00336"></a><a class="code" href="classPIPSocket_1_1Address.html#a6">00336</a> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a2">operator!=</a>(DWORD dw)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(dw); }00337 <span class="preprocessor">#ifdef P_VXWORKS </span>00338 <span class="preprocessor"></span> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(<span class="keywordtype">long</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> u)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>((DWORD)u); }00339 <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a2">operator!=</a>(<span class="keywordtype">long</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> u)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>((DWORD)u); }00340 <span class="preprocessor">#endif</span>00341 <span class="preprocessor"></span><span class="preprocessor">#ifdef _WIN32</span>00342 <span class="preprocessor"></span> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(<span class="keywordtype">unsigned</span> u)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>((DWORD)u); }00343 <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a2">operator!=</a>(<span class="keywordtype">unsigned</span> u)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>((DWORD)u); }00344 <span class="preprocessor">#endif</span>00345 <span class="preprocessor"></span><span class="preprocessor">#ifdef P_RTEMS</span>00346 <span class="preprocessor"></span> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(u_long u)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>((DWORD)u); }00347 <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a2">operator!=</a>(u_long u)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>((DWORD)u); }00348 <span class="preprocessor">#endif</span>00349 <span class="preprocessor"></span><span class="preprocessor">#ifdef __BEOS__</span>00350 <span class="preprocessor"></span> <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(in_addr_t a)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>((DWORD)a); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -