📄 ipsock_8h-source.html
字号:
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> & 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> *)&<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 &&00423 (<a class="code" href="classPIPSocket_1_1Address.html#a15">Byte2</a>() >= 16) && (<a class="code" href="classPIPSocket_1_1Address.html#a15">Byte2</a>() <= 31)00424 )00425 ||00426 (00427 (<a class="code" href="classPIPSocket_1_1Address.html#a14">Byte1</a>() == 192) 00428 &&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> & <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> & GetLoopback6();00441 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classPIPSocket_1_1Address.html#z161_0">Address</a> & 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> & <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 & <a class="code" href="classPIPSocket_1_1Address.html#l0">operator<<</a>(ostream & s, <span class="keyword">const</span> <a class="code" href="classPIPSocket_1_1Address.html">Address</a> & a);00457 00459 <span class="keyword">friend</span> istream & <a class="code" href="classPIPSocket_1_1Address.html#l1">operator>></a>(istream & s, <a class="code" href="classPIPSocket_1_1Address.html">Address</a> & 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> & 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 & 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 & 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 & iface, 00516 <span class="keyword">const</span> Address & 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 & iface, 00520 WORD localPort, 00521 <span class="keyword">const</span> Address & 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 & 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> & 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 & addr 00566 );00567 00574 <span class="keyword">static</span> BOOL <a class="code" href="classPIPSocket.html#d7">GetHostAddress</a>(00575 Address & 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> & 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 + -