⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipsock_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 4 页
字号:
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&lt;&lt; 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 &lt;<a class="code" href="socket_8h.html">ptlib/socket.h</a>&gt;</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> &amp; 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 &amp; 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 &amp; 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 &amp; addr);00307         <a class="code" href="classPIPSocket_1_1Address.html">Address</a> &amp; <a class="code" href="classPIPSocket_1_1Address.html#z161_6">operator=</a>(<span class="keyword">const</span> <span class="keyword">struct</span> id_struct &amp; addr);00308 <span class="preprocessor">#endif</span>00309 <span class="preprocessor"></span>00311         <a class="code" href="classPIPSocket_1_1Address.html">Address</a> &amp; <a class="code" href="classPIPSocket_1_1Address.html#z161_6">operator=</a>(<span class="keyword">const</span> in_addr &amp; 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> &amp; <a class="code" href="classPIPSocket_1_1Address.html#z161_6">operator=</a>(<span class="keyword">const</span> in6_addr &amp; addr);00316 <span class="preprocessor">#endif</span>00317 <span class="preprocessor"></span>00319         <a class="code" href="classPIPSocket_1_1Address.html">Address</a> &amp; <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> &amp; dotNotation);00320 00322         <a class="code" href="classPIPSocket_1_1Address.html">Address</a> &amp; <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> &amp; 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> &amp; 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> &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 + -