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

📄 socket_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00500     );00502     <span class="keyword">static</span> <a class="code" href="classPChannel.html#z55_0">Errors</a> <a class="code" href="classPSocket.html#z375_0">Select</a>(00503       SelectList &amp; read,      00504       SelectList &amp; write,     00505       <span class="keyword">const</span> <a class="code" href="classPTimeInterval.html">PTimeInterval</a> &amp; timeout 00506     );00508     <span class="keyword">static</span> <a class="code" href="classPChannel.html#z55_0">Errors</a> <a class="code" href="classPSocket.html#z375_0">Select</a>(00509       SelectList &amp; read,      00510       SelectList &amp; write,     00511       SelectList &amp; except     00512     );00534     <span class="keyword">static</span> <a class="code" href="classPChannel.html#z55_0">Errors</a> <a class="code" href="classPSocket.html#z375_0">Select</a>(00535       SelectList &amp; read,      00536       SelectList &amp; write,     00537       SelectList &amp; except,    00538       <span class="keyword">const</span> <a class="code" href="classPTimeInterval.html">PTimeInterval</a> &amp; timeout 00539     );00541 00544 <a name="l00545"></a><a class="code" href="classPSocket.html#z377_0">00545</a>     <span class="keyword">inline</span> <span class="keyword">static</span> WORD  <a class="code" href="classPSocket.html#z377_0">Host2Net</a>(WORD  v) { <span class="keywordflow">return</span> htons(v); }<a name="l00547"></a><a class="code" href="classPSocket.html#z377_1">00547</a>     <span class="keyword">inline</span> <span class="keyword">static</span> DWORD <a class="code" href="classPSocket.html#z377_0">Host2Net</a>(DWORD v) { <span class="keywordflow">return</span> htonl(v); }00548 <a name="l00550"></a><a class="code" href="classPSocket.html#z377_2">00550</a>     <span class="keyword">inline</span> <span class="keyword">static</span> WORD  <a class="code" href="classPSocket.html#z377_2">Net2Host</a>(WORD  v) { <span class="keywordflow">return</span> ntohs(v); }<a name="l00552"></a><a class="code" href="classPSocket.html#z377_3">00552</a>     <span class="keyword">inline</span> <span class="keyword">static</span> DWORD <a class="code" href="classPSocket.html#z377_2">Net2Host</a>(DWORD v) { <span class="keywordflow">return</span> ntohl(v); }00554 00555   <span class="keyword">protected</span>:00556     <span class="comment">/*This function calls os_socket() with the correct parameters for the</span>00557 <span class="comment">       socket protocol type.</span>00558 <span class="comment">     */</span>00559     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSocket.html#b1">OpenSocket</a>() = 0;00560 00563     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classPSocket.html#b2">GetProtocolName</a>() <span class="keyword">const</span> = 0;00564 00565 00566     <span class="keywordtype">int</span> <a class="code" href="classPSocket.html#b3">os_close</a>();00567     <span class="keywordtype">int</span> <a class="code" href="classPSocket.html#b4">os_socket</a>(<span class="keywordtype">int</span> af, <span class="keywordtype">int</span> type, <span class="keywordtype">int</span> proto);00568     BOOL <a class="code" href="classPSocket.html#b5">os_connect</a>(00569       <span class="keyword">struct</span> sockaddr * sin,00570       PINDEX size00571     );00572     BOOL <a class="code" href="classPSocket.html#b6">os_recvfrom</a>(00573       <span class="keywordtype">void</span> * buf,00574       PINDEX len,00575       <span class="keywordtype">int</span> flags,00576       <span class="keyword">struct</span> sockaddr * from,00577       PINDEX * fromlen00578     );00579     BOOL <a class="code" href="classPSocket.html#b7">os_sendto</a>(00580       <span class="keyword">const</span> <span class="keywordtype">void</span> * buf,00581       PINDEX len,00582       <span class="keywordtype">int</span> flags,00583       <span class="keyword">struct</span> sockaddr * to,00584       PINDEX tolen00585     );00586     BOOL <a class="code" href="classPSocket.html#b8">os_accept</a>(00587       <a class="code" href="classPSocket.html">PSocket</a> &amp; listener,00588       <span class="keyword">struct</span> sockaddr * addr,00589       PINDEX * size00590     );00591 00592 00593   <span class="comment">// Member variables</span><a name="l00595"></a><a class="code" href="classPSocket.html#n0">00595</a> <span class="comment">    WORD port;</span>00596 00597 <span class="preprocessor">#if P_HAS_RECVMSG</span>00598 <span class="preprocessor"></span>    BOOL catchReceiveToAddr;00599     <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetLastReceiveAddr(<span class="keywordtype">void</span> * <span class="comment">/*addr*/</span>, <span class="keywordtype">int</span> <span class="comment">/*addrLen*/</span>)00600     { }00601 <span class="preprocessor">#endif</span>00602 <span class="preprocessor"></span>00603 <span class="comment">// Include platform dependent part of class</span>00604 <span class="preprocessor">#ifdef _WIN32</span>00605 <span class="preprocessor"></span><span class="preprocessor">#include "msos/ptlib/socket.h"</span>00606 <span class="preprocessor">#else</span>00607 <span class="preprocessor"></span><span class="preprocessor">#include "unix/ptlib/socket.h"</span>00608 <span class="preprocessor">#endif</span>00609 <span class="preprocessor"></span>};00610 00611 00612 <span class="comment">// Utility classes</span>00613 00614 <span class="keyword">class </span><a class="code" href="classP__fd__set.html">P_fd_set</a> {00615   <span class="keyword">public</span>:00616     <a class="code" href="classP__fd__set.html#a0">P_fd_set</a>();00617     <a class="code" href="classP__fd__set.html#a0">P_fd_set</a>(SOCKET fd);00618     <a class="code" href="classP__fd__set.html#a2">~P_fd_set</a>()00619       {00620         free(set);00621       }00622 00623     <a class="code" href="classP__fd__set.html">P_fd_set</a> &amp; <a class="code" href="classP__fd__set.html#a3">operator=</a>(SOCKET fd);00624     <a class="code" href="classP__fd__set.html">P_fd_set</a> &amp; <a class="code" href="classP__fd__set.html#a4">operator+=</a>(SOCKET fd);00625     <a class="code" href="classP__fd__set.html">P_fd_set</a> &amp; <a class="code" href="classP__fd__set.html#a5">operator-=</a>(SOCKET fd);00626 00627     <span class="keywordtype">void</span> <a class="code" href="classP__fd__set.html#a6">Zero</a>();00628 00629     BOOL <a class="code" href="classP__fd__set.html#a7">IsPresent</a>(SOCKET fd)<span class="keyword"> const</span>00630 <span class="keyword">      </span>{00631         <span class="keywordflow">return</span> FD_ISSET(fd, set);00632       }00633 00634     <a class="code" href="classP__fd__set.html#a8">operator fd_set*</a>()<span class="keyword"> const</span>00635 <span class="keyword">      </span>{00636         <span class="keywordflow">return</span> set;00637       }00638 00639   <span class="keyword">private</span>:00640     <span class="keywordtype">void</span> Construct();00641 00642     SOCKET max_fd;00643     fd_set * set;00644 };00645 00646 00647 <span class="keyword">class </span><a class="code" href="classP__timeval.html">P_timeval</a> {00648   <span class="keyword">public</span>:00649     <a class="code" href="classP__timeval.html#a0">P_timeval</a>();00650     <a class="code" href="classP__timeval.html#a0">P_timeval</a>(<span class="keyword">const</span> <a class="code" href="classPTimeInterval.html">PTimeInterval</a> &amp; time)00651       {00652         <a class="code" href="classP__timeval.html#a2">operator=</a>(time);00653       }00654 00655     <a class="code" href="classP__timeval.html">P_timeval</a> &amp; <a class="code" href="classP__timeval.html#a2">operator=</a>(<span class="keyword">const</span> <a class="code" href="classPTimeInterval.html">PTimeInterval</a> &amp; time);00656 00657     <a class="code" href="classP__timeval.html#a3">operator timeval*</a>()00658       {00659         <span class="keywordflow">return</span> infinite ? NULL : &amp;tval;00660       }00661 00662     timeval * <a class="code" href="classP__timeval.html#a4">operator-&gt;</a>()00663       {00664         <span class="keywordflow">return</span> &amp;tval;00665       }00666 00667     timeval &amp; <a class="code" href="classP__timeval.html#a5">operator*</a>()00668       {00669         <span class="keywordflow">return</span> tval;00670       }00671 00672   <span class="keyword">private</span>:00673     <span class="keyword">struct </span>timeval tval;00674     BOOL infinite;00675 };00676 00677 <span class="preprocessor">#ifdef _WIN32</span>00678 <span class="preprocessor"></span><span class="keyword">class </span>PWinSock : <span class="keyword">public</span> <a class="code" href="classPSocket.html">PSocket</a>00679 {00680   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PWinSock, <a class="code" href="classPSocket.html">PSocket</a>)00681 <span class="comment">// Must be one and one only instance of this class, and it must be static!.</span>00682   <span class="keyword">public</span>:00683     PWinSock();00684     ~PWinSock();00685   <span class="keyword">private</span>:00686     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSocket.html#b1">OpenSocket</a>();00687     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classPSocket.html#b2">GetProtocolName</a>() <span class="keyword">const</span>;00688 };00689 <span class="preprocessor">#endif</span>00690 <span class="preprocessor"></span>00691 <span class="preprocessor">#endif</span>00692 <span class="preprocessor"></span>00693 <span class="comment">// End Of File ///////////////////////////////////////////////////////////////</span></pre></div><hr><address style="align: right;"><small>Generated on Wed Sep 29 22:44:12 2004 for PWLib by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

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