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

📄 socket_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00162 <span class="comment"> * Revision 1.8  1995/03/12  04:45:40  robertj</span>00163 <span class="comment"> * Added more functionality.</span>00164 <span class="comment"> *</span>00165 <span class="comment"> * Revision 1.7  1995/01/03  09:36:19  robertj</span>00166 <span class="comment"> * Documentation.</span>00167 <span class="comment"> *</span>00168 <span class="comment"> * Revision 1.6  1995/01/02  12:16:17  robertj</span>00169 <span class="comment"> * Moved constructor to platform dependent code.</span>00170 <span class="comment"> *</span>00171 <span class="comment"> * Revision 1.5  1994/08/23  11:32:52  robertj</span>00172 <span class="comment"> * Oops</span>00173 <span class="comment"> *</span>00174 <span class="comment"> * Revision 1.4  1994/08/22  00:46:48  robertj</span>00175 <span class="comment"> * Added pragma fro GNU C++ compiler.</span>00176 <span class="comment"> *</span>00177 <span class="comment"> * Revision 1.3  1994/08/21  23:43:02  robertj</span>00178 <span class="comment"> * Changed type of socket port number for better portability.</span>00179 <span class="comment"> *</span>00180 <span class="comment"> * Revision 1.2  1994/07/25  03:36:03  robertj</span>00181 <span class="comment"> * Added sockets to common, normalising to same comment standard.</span>00182 <span class="comment"> *</span>00183 <span class="comment"> */</span>00184 00185 <span class="preprocessor">#ifndef _PSOCKETS</span>00186 <span class="preprocessor"></span><span class="preprocessor">#define _PSOCKETS</span>00187 <span class="preprocessor"></span>00188 <span class="preprocessor">#ifdef P_USE_PRAGMA</span>00189 <span class="preprocessor"></span><span class="preprocessor">#pragma interface</span>00190 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00191 <span class="preprocessor"></span>00192 <span class="preprocessor">#include &lt;<a class="code" href="channel_8h.html">ptlib/channel.h</a>&gt;</span>00193 00194 <span class="preprocessor">#ifdef __NUCLEUS_PLUS__</span>00195 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/socket.h&gt;</span>00196 <span class="preprocessor">#endif</span>00197 <span class="preprocessor"></span>00198 <span class="keyword">class </span><a class="code" href="classPSocket.html">PSocket</a>;00199 00200 <a class="code" href="lists_8h.html#a0">PLIST</a>(PSocketList, <a class="code" href="classPSocket.html">PSocket</a>);00201 00202 <a name="l00209"></a><a class="code" href="classPSocket.html">00209</a> <span class="keyword">class </span><a class="code" href="classPSocket.html">PSocket</a> : <span class="keyword">public</span> <a class="code" href="classPChannel.html">PChannel</a>00210 {00211   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPSocket.html">PSocket</a>, <a class="code" href="classPChannel.html">PChannel</a>);00212 00213   <span class="keyword">protected</span>:00214     <a class="code" href="classPSocket.html#b0">PSocket</a>();00215 00216   <span class="keyword">public</span>:00229     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSocket.html#z369_1">Connect</a>(00230       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; address   00231     );00232 00233 <a name="l00235"></a><a class="code" href="classPSocket.html#z369_0">00235</a>     <span class="keyword">enum</span> <a class="code" href="classPSocket.html#z369_0">Reusability</a> {00236       <a class="code" href="classPSocket.html#z369_0s0">CanReuseAddress</a>,00237       <a class="code" href="classPSocket.html#z369_0s1">AddressIsExclusive</a>00238     };00239 00253     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSocket.html#z369_2">Listen</a>(00254       <span class="keywordtype">unsigned</span> queueSize = 5,  00255       WORD <a class="code" href="classPSocket.html#n0">port</a> = 0,           00256       <a class="code" href="classPSocket.html#z369_0">Reusability</a> reuse = <a class="code" href="classPSocket.html#z369_0s1">AddressIsExclusive</a> 00257     );00258 00259 00281     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSocket.html#z369_3">Accept</a>(00282       <a class="code" href="classPSocket.html">PSocket</a> &amp; socket          00283     );00284 00290     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSocket.html#z369_4">Shutdown</a>(00291       <a class="code" href="classPChannel.html#z53_0">ShutdownValue</a> option   00292     );00294 00303     BOOL <a class="code" href="classPSocket.html#z371_0">SetOption</a>(00304       <span class="keywordtype">int</span> option,             00305       <span class="keywordtype">int</span> value,              00306       <span class="keywordtype">int</span> level = SOL_SOCKET  00307     );00308 00315     BOOL <a class="code" href="classPSocket.html#z371_0">SetOption</a>(00316       <span class="keywordtype">int</span> option,             00317       <span class="keyword">const</span> <span class="keywordtype">void</span> * valuePtr,  00318       PINDEX valueSize,       00319       <span class="keywordtype">int</span> level = SOL_SOCKET  00320     );00321 00328     BOOL <a class="code" href="classPSocket.html#z371_2">GetOption</a>(00329       <span class="keywordtype">int</span> option,             00330       <span class="keywordtype">int</span> &amp; value,            00331       <span class="keywordtype">int</span> level = SOL_SOCKET  00332     );00333 00340     BOOL <a class="code" href="classPSocket.html#z371_2">GetOption</a>(00341       <span class="keywordtype">int</span> option,             00342       <span class="keywordtype">void</span> * valuePtr,        00343       PINDEX valueSize,       00344       <span class="keywordtype">int</span> level = SOL_SOCKET  00345     );00347 00355     <span class="keyword">static</span> WORD <a class="code" href="classPSocket.html#z373_6">GetProtocolByName</a>(00356       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; name      00357     );00358 00364     <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPSocket.html#z373_7">GetNameByProtocol</a>(00365       WORD proto                00366     );00367 00368 00370     <span class="keyword">virtual</span> WORD <a class="code" href="classPSocket.html#z373_0">GetPortByService</a>(00371       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; service   00372     ) <span class="keyword">const</span>;00390     <span class="keyword">static</span> WORD <a class="code" href="classPSocket.html#z373_0">GetPortByService</a>(00391       <span class="keyword">const</span> <span class="keywordtype">char</span> * protocol,     00392       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; service    00393     );00394 00396     <span class="keyword">virtual</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPSocket.html#z373_1">GetServiceByPort</a>(00397       WORD <a class="code" href="classPSocket.html#n0">port</a>   00398     ) <span class="keyword">const</span>;00416     <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPSocket.html#z373_1">GetServiceByPort</a>(00417       <span class="keyword">const</span> <span class="keywordtype">char</span> * protocol,  00418       WORD <a class="code" href="classPSocket.html#n0">port</a>   00419     );00420 00421 00423     <span class="keywordtype">void</span> <a class="code" href="classPSocket.html#z373_2">SetPort</a>(00424       WORD <a class="code" href="classPSocket.html#n0">port</a>   00425     );00438     <span class="keywordtype">void</span> <a class="code" href="classPSocket.html#z373_2">SetPort</a>(00439       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; service   00440     );00441 00447     WORD <a class="code" href="classPSocket.html#z373_4">GetPort</a>() <span class="keyword">const</span>;00448 00456     <a class="code" href="classPString.html">PString</a> <a class="code" href="classPSocket.html#z373_5">GetService</a>() <span class="keyword">const</span>;00458 00461 <a name="l00462"></a><a class="code" href="classPSocket_1_1SelectList.html">00462</a>     <span class="keyword">class </span><a class="code" href="classPSocket_1_1SelectList.html">SelectList</a> : <span class="keyword">public</span> PSocketList00463     {00464       <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPSocket_1_1SelectList.html">SelectList</a>, PSocketList)00465       <span class="keyword">public</span>:<a name="l00466"></a><a class="code" href="classPSocket_1_1SelectList.html#a0">00466</a>         <a class="code" href="classPSocket_1_1SelectList.html#a0">SelectList</a>()00467           { DisallowDeleteObjects(); }<a name="l00469"></a><a class="code" href="classPSocket_1_1SelectList.html#a1">00469</a>         <span class="keywordtype">void</span> <a class="code" href="classPSocket_1_1SelectList.html#a1">operator+=</a>(<a class="code" href="classPSocket.html">PSocket</a> &amp; sock )00470           { Append(&amp;sock); }<a name="l00472"></a><a class="code" href="classPSocket_1_1SelectList.html#a2">00472</a>         <span class="keywordtype">void</span> <a class="code" href="classPSocket_1_1SelectList.html#a2">operator-=</a>(<a class="code" href="classPSocket.html">PSocket</a> &amp; sock )00473           { Remove(&amp;sock); }00474     };00475 00477     <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classPSocket.html#z375_0">Select</a>(00478       <a class="code" href="classPSocket.html">PSocket</a> &amp; sock1,        00479       <a class="code" href="classPSocket.html">PSocket</a> &amp; sock2         00480     );00482     <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classPSocket.html#z375_0">Select</a>(00483       <a class="code" href="classPSocket.html">PSocket</a> &amp; sock1,        00484       <a class="code" href="classPSocket.html">PSocket</a> &amp; sock2,        00485       <span class="keyword">const</span> <a class="code" href="classPTimeInterval.html">PTimeInterval</a> &amp; timeout 00486     );00488     <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>(00489       SelectList &amp; read       00490     );00492     <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>(00493       SelectList &amp; read,      00494       <span class="keyword">const</span> <a class="code" href="classPTimeInterval.html">PTimeInterval</a> &amp; timeout 00495     );00497     <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>(00498       SelectList &amp; read,      00499       SelectList &amp; write      

⌨️ 快捷键说明

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