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

📄 ipsock_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00351         <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a2">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); }00352 <span class="preprocessor">#endif</span><a name="l00353"></a><a class="code" href="classPIPSocket_1_1Address.html#a7">00353</a> <span class="preprocessor"></span>        <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>(<span class="keywordtype">int</span> i)<span class="keyword"> const      </span>{ <span class="keywordflow">return</span>  <a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>((DWORD)i); }<a name="l00354"></a><a class="code" href="classPIPSocket_1_1Address.html#a8">00354</a>         <span class="keywordtype">bool</span> <a class="code" href="classPIPSocket_1_1Address.html#a2">operator!=</a>(<span class="keywordtype">int</span> i)<span class="keyword"> const      </span>{ <span class="keywordflow">return</span> !<a class="code" href="classPIPSocket_1_1Address.html#a1">operator==</a>((DWORD)i); }00355 00357         <a class="code" href="classPString.html">PString</a> <a class="code" href="classPIPSocket_1_1Address.html#a9">AsString</a>() <span class="keyword">const</span>;00358 00360         BOOL <a class="code" href="classPIPSocket_1_1Address.html#a10">FromString</a>(00361           <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; str00362         );00363 00365         <a class="code" href="classPIPSocket_1_1Address.html#a11">operator PString</a>() <span class="keyword">const</span>;00366 00368         <a class="code" href="classPIPSocket_1_1Address.html#a12">operator in_addr</a>() <span class="keyword">const</span>;00369 00370 <span class="preprocessor">#if P_HAS_IPV6</span>00371 <span class="preprocessor"></span>00372         operator in6_addr() <span class="keyword">const</span>;00373 <span class="preprocessor">#endif</span>00374 <span class="preprocessor"></span>00376         <a class="code" href="classPIPSocket_1_1Address.html#a13">operator DWORD</a>() <span class="keyword">const</span>;00377 00379         BYTE <a class="code" href="classPIPSocket_1_1Address.html#a14">Byte1</a>() <span class="keyword">const</span>;00380 00382         BYTE <a class="code" href="classPIPSocket_1_1Address.html#a15">Byte2</a>() <span class="keyword">const</span>;00383 00385         BYTE <a class="code" href="classPIPSocket_1_1Address.html#a16">Byte3</a>() <span class="keyword">const</span>;00386 00388         BYTE <a class="code" href="classPIPSocket_1_1Address.html#a17">Byte4</a>() <span class="keyword">const</span>;00389 00391         BYTE <a class="code" href="classPIPSocket_1_1Address.html#a18">operator[]</a>(PINDEX idx) <span class="keyword">const</span>;00392 00394         PINDEX <a class="code" href="classPIPSocket_1_1Address.html#a19">GetSize</a>() <span class="keyword">const</span>;00395 <a name="l00397"></a><a class="code" href="classPIPSocket_1_1Address.html#a20">00397</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classPIPSocket_1_1Address.html#a20">GetPointer</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<span class="keyword">const</span> <span class="keywordtype">char</span> *)&amp;<a class="code" href="classPIPSocket_1_1Address.html#n1">v</a>; }00398 <a name="l00400"></a><a class="code" href="classPIPSocket_1_1Address.html#a21">00400</a>         <span class="keywordtype">unsigned</span> <a class="code" href="classPIPSocket_1_1Address.html#a21">GetVersion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPIPSocket_1_1Address.html#n2">version</a>; }00401 00403         BOOL <a class="code" href="classPIPSocket_1_1Address.html#a22">IsValid</a>() <span class="keyword">const</span>;00404         BOOL <a class="code" href="classPIPSocket_1_1Address.html#a23">IsAny</a>();00405 00407         BOOL <a class="code" href="classPIPSocket_1_1Address.html#a24">IsLoopback</a>() <span class="keyword">const</span>;00408 00410         BOOL <a class="code" href="classPIPSocket_1_1Address.html#a25">IsBroadcast</a>() <span class="keyword">const</span>;00411 00412         <span class="comment">// Check if the remote address is private address as specified</span>00413         <span class="comment">// by RFC 1918 address</span>00414         <span class="comment">//  10.0.0.0    - 10.255.255.255.255</span>00415         <span class="comment">//  172.16.0.0  - 172.31.255.255</span>00416         <span class="comment">//  192.168.0.0 - 192.168.255.255</span><a name="l00417"></a><a class="code" href="classPIPSocket_1_1Address.html#a26">00417</a>         BOOL <a class="code" href="classPIPSocket_1_1Address.html#a26">IsRFC1918</a>()<span class="keyword"> const </span>00418 <span class="keyword">        </span>{ <span class="keywordflow">return</span> (<a class="code" href="classPIPSocket_1_1Address.html#a14">Byte1</a>() == 10)00419                   ||00420                   (00421                     (<a class="code" href="classPIPSocket_1_1Address.html#a14">Byte1</a>() == 172)00422                     &amp;&amp;00423                     (<a class="code" href="classPIPSocket_1_1Address.html#a15">Byte2</a>() &gt;= 16) &amp;&amp; (<a class="code" href="classPIPSocket_1_1Address.html#a15">Byte2</a>() &lt;= 31)00424                   )00425                   ||00426                   (00427                     (<a class="code" href="classPIPSocket_1_1Address.html#a14">Byte1</a>() == 192) 00428                     &amp;&amp;00429                     (<a class="code" href="classPIPSocket_1_1Address.html#a15">Byte2</a>() == 168)00430                   );00431         }00432 00433 <span class="preprocessor">#if P_HAS_IPV6</span>00434 <span class="preprocessor"></span>00435         BOOL IsV4Mapped() <span class="keyword">const</span>;00436 <span class="preprocessor">#endif</span>00437 <span class="preprocessor"></span>        00438         <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a> &amp; <a class="code" href="classPIPSocket_1_1Address.html#d0">GetLoopback</a>();00439 <span class="preprocessor">#if P_HAS_IPV6</span>00440 <span class="preprocessor"></span>        <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a> &amp; GetLoopback6();00441         <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a> &amp; GetAny6();00442 <span class="preprocessor">#endif</span>00443 <span class="preprocessor"></span>        <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a> &amp; <a class="code" href="classPIPSocket_1_1Address.html#d1">GetBroadcast</a>();00444 00445       <span class="keyword">protected</span>:00447         <span class="keyword">union </span>{<a name="l00448"></a><a class="code" href="classPIPSocket_1_1Address.html#n0">00448</a>           in_addr <a class="code" href="classPIPSocket_1_1Address.html#n0">four</a>;00449 <span class="preprocessor">#if P_HAS_IPV6</span>00450 <span class="preprocessor"></span>          in6_addr six;00451 <span class="preprocessor">#endif</span>00452 <span class="preprocessor"></span>        } <a class="code" href="classPIPSocket_1_1Address.html#n1">v</a>;<a name="l00453"></a><a class="code" href="classPIPSocket_1_1Address.html#n2">00453</a>         <span class="keywordtype">unsigned</span> <a class="code" href="classPIPSocket_1_1Address.html#n2">version</a>;00454 00456       <span class="keyword">friend</span> ostream &amp; <a class="code" href="classPIPSocket_1_1Address.html#l0">operator&lt;&lt;</a>(ostream &amp; s, <span class="keyword">const</span> <a class="code" href="classPIPSocket_1_1Address.html">Address</a> &amp; a);00457 00459       <span class="keyword">friend</span> istream &amp; <a class="code" href="classPIPSocket_1_1Address.html#l1">operator&gt;&gt;</a>(istream &amp; s, <a class="code" href="classPIPSocket_1_1Address.html">Address</a> &amp; a);00460     };00461 00462   <span class="comment">// Overrides from class PChannel</span>00470 <span class="comment"></span>    <span class="keyword">virtual</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPIPSocket.html#a0">GetName</a>() <span class="keyword">const</span>;00471 00472     <span class="comment">// Set the default IP address familly.</span>00473     <span class="comment">// Needed as lot of IPv6 stack are not able to receive IPv4 packets in IPv6 sockets</span>00474     <span class="comment">// They are not RFC 2553, chapter 7.3, compliant.</span>00475     <span class="comment">// As a concequence, when opening a socket to listen to port 1720 (for exemple) from any remot host</span>00476     <span class="comment">// one must decide whether this an IPv4 or an IPv6 socket...</span>00477     <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classPIPSocket.html#d0">GetDefaultIpAddressFamily</a>();00478     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPIPSocket.html#d1">SetDefaultIpAddressFamily</a>(<span class="keywordtype">int</span> ipAdressFamily); <span class="comment">// PF_INET, PF_INET6</span>00479     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPIPSocket.html#d2">SetDefaultIpAddressFamilyV4</a>(); <span class="comment">// PF_INET</span>00480 <span class="preprocessor">#if P_HAS_IPV6</span>00481 <span class="preprocessor"></span>    <span class="keyword">static</span> <span class="keywordtype">void</span> SetDefaultIpAddressFamilyV6(); <span class="comment">// PF_INET6</span>00482     <span class="keyword">static</span> BOOL IsIpAddressFamilyV6Supported();00483 <span class="preprocessor">#endif</span>00484 <span class="preprocessor"></span>    <span class="keyword">static</span> <a class="code" href="classPIPSocket_1_1Address.html">PIPSocket::Address</a> <a class="code" href="classPIPSocket.html#d3">GetDefaultIpAny</a>();00485 00486     <span class="comment">// Open an IPv4 or IPv6 socket</span>00487     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSocket.html#b1">OpenSocket</a>(00488       <span class="keywordtype">int</span> ipAdressFamily=PF_INET00489     ) = 0;00490 00491 00492   <span class="comment">// Overrides from class PSocket.</span>00504 <span class="comment"></span>    <span class="keyword">virtual</span> BOOL <a class="code" href="classPIPSocket.html#a2">Connect</a>(00505       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; address   00506     );00507     <span class="keyword">virtual</span> BOOL <a class="code" href="classPIPSocket.html#a2">Connect</a>(00508       <span class="keyword">const</span> Address &amp; addr      00509     );00510     <span class="keyword">virtual</span> BOOL <a class="code" href="classPIPSocket.html#a2">Connect</a>(00511       WORD localPort,           00512       <span class="keyword">const</span> Address &amp; addr      00513     );00514     <span class="keyword">virtual</span> BOOL <a class="code" href="classPIPSocket.html#a2">Connect</a>(00515       <span class="keyword">const</span> Address &amp; iface,    00516       <span class="keyword">const</span> Address &amp; addr      00517     );00518     <span class="keyword">virtual</span> BOOL <a class="code" href="classPIPSocket.html#a2">Connect</a>(00519       <span class="keyword">const</span> Address &amp; iface,    00520       WORD localPort,           00521       <span class="keyword">const</span> Address &amp; addr      00522     );00523 00539     <span class="keyword">virtual</span> BOOL <a class="code" href="classPIPSocket.html#a7">Listen</a>(00540       <span class="keywordtype">unsigned</span> queueSize = 5,  00541       WORD <a class="code" href="classPSocket.html#n0">port</a> = 0,           00542       <a class="code" href="classPSocket.html#z369_0">Reusability</a> reuse = <a class="code" href="classPSocket.html#z369_0s1">AddressIsExclusive</a> 00543     );00544     <span class="keyword">virtual</span> BOOL <a class="code" href="classPIPSocket.html#a7">Listen</a>(00545       <span class="keyword">const</span> Address &amp; bind,     00546       <span class="keywordtype">unsigned</span> queueSize = 5,   00547       WORD <a class="code" href="classPSocket.html#n0">port</a> = 0,            00548       <a class="code" href="classPSocket.html#z369_0">Reusability</a> reuse = <a class="code" href="classPSocket.html#z369_0s1">AddressIsExclusive</a> 00549     );00550 00551 00552   <span class="comment">// New functions for class</span>00560 <span class="comment"></span>    <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPIPSocket.html#d4">GetHostName</a>();00561     <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPIPSocket.html#d4">GetHostName</a>(00562       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; hostname  00563     );00564     <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPIPSocket.html#d4">GetHostName</a>(00565       <span class="keyword">const</span> Address &amp; addr    00566     );00567 00574     <span class="keyword">static</span> BOOL <a class="code" href="classPIPSocket.html#d7">GetHostAddress</a>(00575       Address &amp; addr    00576     );00577     <span class="keyword">static</span> BOOL <a class="code" href="classPIPSocket.html#d7">GetHostAddress</a>(00578       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; hostname,00579       <span class="comment">/* Name of host to get address for. This may be either a domain name or</span>00580 <span class="comment">         an IP number in "dot" format.</span>00581 <span class="comment">       */</span>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -