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

📄 classpethsocket.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>PEthSocket class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center><hr><h1>PEthSocket Class Reference</h1><code>#include &lt;<a class="el" href="ethsock_8h-source.html">ethsock.h</a>&gt;</code><p><p>Inheritance diagram for PEthSocket:<p><center><img src="classPEthSocket.png" usemap="#PEthSocket_map" border="0" alt=""></center><map name="PEthSocket_map"><area href="classPSocket.html" alt="PSocket" shape="rect" coords="0,112,76,136"><area href="classPChannel.html" alt="PChannel" shape="rect" coords="0,56,76,80"><area href="classPObject.html" alt="PObject" shape="rect" coords="0,0,76,24"></map><a href="classPEthSocket-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Information functions</h2></td></tr><tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z119_0">MediumTypes</a> { <br>&nbsp;&nbsp;<a class="el" href="classPEthSocket.html#z119_0s0">MediumLoop</a>, <a class="el" href="classPEthSocket.html#z119_0s1">Medium802_3</a>, <a class="el" href="classPEthSocket.html#z119_0s2">MediumWan</a>, <a class="el" href="classPEthSocket.html#z119_0s3">MediumUnknown</a>, <br>&nbsp;&nbsp;<a class="el" href="classPEthSocket.html#z119_0s4">NumMediumTypes</a><br> }</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Medium types for the open interface.</em> <a href="#z119_0">More...</a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z119_1">EnumInterfaces</a> (PINDEX idx, <a class="el" href="classPString.html">PString</a> &amp;name)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z119_2">GetAddress</a> (<a class="el" href="unionPEthSocket_1_1Address.html">Address</a> &amp;addr)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z119_3">GetIpAddress</a> (<a class="el" href="classPIPSocket_1_1Address.html">PIPSocket::Address</a> &amp;addr)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z119_4">GetIpAddress</a> (<a class="el" href="classPIPSocket_1_1Address.html">PIPSocket::Address</a> &amp;addr, <a class="el" href="classPIPSocket_1_1Address.html">PIPSocket::Address</a> &amp;netMask)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z119_5">EnumIpAddress</a> (PINDEX idx, <a class="el" href="classPIPSocket_1_1Address.html">PIPSocket::Address</a> &amp;addr, <a class="el" href="classPIPSocket_1_1Address.html">PIPSocket::Address</a> &amp;netMask)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPEthSocket.html#z119_0">MediumTypes</a>&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z119_6">GetMedium</a> ()</td></tr><tr><td colspan=2><br><h2>Filtering functions</h2></td></tr><tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z121_0">EthTypes</a> { <br>&nbsp;&nbsp;<a class="el" href="classPEthSocket.html#z121_0s5">TypeAll</a> =  3, <a class="el" href="classPEthSocket.html#z121_0s6">TypeIP</a> =  0x800, <a class="el" href="classPEthSocket.html#z121_0s7">TypeX25</a> =  0x805, <a class="el" href="classPEthSocket.html#z121_0s8">TypeARP</a> =  0x806, <br>&nbsp;&nbsp;<a class="el" href="classPEthSocket.html#z121_0s9">TypeAtalk</a> =  0x809B, <a class="el" href="classPEthSocket.html#z121_0s10">TypeAARP</a> =  0x80F3, <a class="el" href="classPEthSocket.html#z121_0s11">TypeIPX</a> =  0x8137, <a class="el" href="classPEthSocket.html#z121_0s12">TypeIPv6</a> =  0x86DD<br> }</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Type codes for ethernet frames.</em> <a href="#z121_0">More...</a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z121_1">FilterMask</a> { <br>&nbsp;&nbsp;<a class="el" href="classPEthSocket.html#z121_1s13">FilterDirected</a> =  0x01, <a class="el" href="classPEthSocket.html#z121_1s14">FilterMulticast</a> =  0x02, <a class="el" href="classPEthSocket.html#z121_1s15">FilterAllMulticast</a> =  0x04, <a class="el" href="classPEthSocket.html#z121_1s16">FilterBroadcast</a> =  0x08, <br>&nbsp;&nbsp;<a class="el" href="classPEthSocket.html#z121_1s17">FilterPromiscuous</a> =  0x10<br> }</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Mask filter bits for <a class="el" href="classPEthSocket.html#z121_2">GetFilter()</a> function.</em> <a href="#z121_1">More...</a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z121_2">GetFilter</a> (unsigned &amp;mask, WORD &amp;type)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z121_3">SetFilter</a> (unsigned mask, WORD type=TypeAll)</td></tr><tr><td colspan=2><br><h2>Public Types</h2></td></tr><tr><td colspan=2><br><h2>Public Methods</h2></td></tr><tr><td colspan="2"><div class="groupHeader">Constructor</div></td></tr><tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z113_0">PEthSocket</a> (PINDEX nReadBuffers=8, PINDEX nWriteBuffers=1, PINDEX size=1514)</td></tr><tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z113_1">~PEthSocket</a> ()</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Close the socket.</em> <a href="#z113_1"></a><em></em></font><br><br></td></tr><tr><td colspan="2"><div class="groupHeader">Overrides from class PChannel</div></td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z115_0">Close</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z115_1">Read</a> (void *buf, PINDEX len)</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z115_2">Write</a> (const void *buf, PINDEX len)</td></tr><tr><td colspan="2"><div class="groupHeader">Overrides from class PSocket</div></td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z117_0">Connect</a> (const <a class="el" href="classPString.html">PString</a> &amp;address)</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z117_1">Listen</a> (unsigned queueSize=5, WORD <a class="el" href="classPSocket.html#n0">port</a>=0, <a class="el" href="classPSocket.html#z369_0">Reusability</a> reuse=AddressIsExclusive)</td></tr><tr><td colspan="2"><div class="groupHeader">I/O functions</div></td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z123_0">ResetAdaptor</a> ()</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#z123_1">ReadPacket</a> (<a class="el" href="classPBYTEArray.html">PBYTEArray</a> &amp;buffer, <a class="el" href="unionPEthSocket_1_1Address.html">Address</a> &amp;dest, <a class="el" href="unionPEthSocket_1_1Address.html">Address</a> &amp;src, WORD &amp;type, PINDEX &amp;len, BYTE *&amp;payload)</td></tr><tr><td colspan=2><br><h2>Protected Methods</h2></td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#b0">OpenSocket</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual const char *&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#b1">GetProtocolName</a> () const</td></tr><tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr><tr><td nowrap align=right valign=top>WORD&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#n0">filterType</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="unionPEthSocket_1_1Address.html">Address</a>&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#n1">macAddress</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPEthSocket.html#z119_0">MediumTypes</a>&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#n2">medium</a></td></tr><tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#n3">filterMask</a></td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#n4">fakeMacHeader</a></td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPEthSocket.html#n5">ipppInterface</a></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>This class describes a type of socket that will communicate using raw ethernet packets. <p><hr><h2>Member Enumeration Documentation</h2><a name="z121_0" doxytag="PEthSocket::EthTypes"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> enum PEthSocket::EthTypes      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Type codes for ethernet frames.<p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z121_0s5" doxytag="TypeAll"></a><em>TypeAll</em></em>&nbsp;</td><td>All frames (3 is value for Linux).</td></tr><tr><td valign=top><em><a name="z121_0s6" doxytag="TypeIP"></a><em>TypeIP</em></em>&nbsp;</td><td>Internet Protocol.</td></tr><tr><td valign=top><em><a name="z121_0s7" doxytag="TypeX25"></a><em>TypeX25</em></em>&nbsp;</td><td>X.25.</td></tr><tr><td valign=top><em><a name="z121_0s8" doxytag="TypeARP"></a><em>TypeARP</em></em>&nbsp;</td><td><a class="el" href="unionPEthSocket_1_1Address.html">Address</a> Resolution Protocol.</td></tr><tr><td valign=top><em><a name="z121_0s9" doxytag="TypeAtalk"></a><em>TypeAtalk</em></em>&nbsp;</td><td>Appletalk DDP.</td></tr><tr><td valign=top><em><a name="z121_0s10" doxytag="TypeAARP"></a><em>TypeAARP</em></em>&nbsp;</td><td>Appletalk AARP.</td></tr><tr><td valign=top><em><a name="z121_0s11" doxytag="TypeIPX"></a><em>TypeIPX</em></em>&nbsp;</td><td>Novell IPX.</td></tr><tr><td valign=top><em><a name="z121_0s12" doxytag="TypeIPv6"></a><em>TypeIPv6</em></em>&nbsp;</td><td>Bluebook IPv6.</td></tr></table></dl>    </td>  </tr></table><a name="z121_1" doxytag="PEthSocket::FilterMask"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> enum PEthSocket::FilterMask      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Mask filter bits for <a class="el" href="classPEthSocket.html#z121_2">GetFilter()</a> function.<p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z121_1s13" doxytag="FilterDirected"></a><em>FilterDirected</em></em>&nbsp;</td><td>Packets directed at the interface.</td></tr><tr><td valign=top><em><a name="z121_1s14" doxytag="FilterMulticast"></a><em>FilterMulticast</em></em>&nbsp;</td><td>Multicast packets directed at the interface.</td></tr><tr><td valign=top><em><a name="z121_1s15" doxytag="FilterAllMulticast"></a><em>FilterAllMulticast</em></em>&nbsp;</td><td>All multicast packets.</td></tr><tr><td valign=top><em><a name="z121_1s16" doxytag="FilterBroadcast"></a><em>FilterBroadcast</em></em>&nbsp;</td><td>Packets with a broadcast address.</td></tr><tr><td valign=top><em><a name="z121_1s17" doxytag="FilterPromiscuous"></a><em>FilterPromiscuous</em></em>&nbsp;</td><td>All packets.</td></tr></table></dl>    </td>  </tr></table><a name="z119_0" doxytag="PEthSocket::MediumTypes"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> enum PEthSocket::MediumTypes      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Medium types for the open interface.<p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z119_0s0" doxytag="MediumLoop"></a><em>MediumLoop</em></em>&nbsp;</td><td>A Loopback Network.</td></tr><tr><td valign=top><em><a name="z119_0s1" doxytag="Medium802_3"></a><em>Medium802_3</em></em>&nbsp;</td><td>An ethernet Network Interface Card (10base2, 10baseT etc).</td></tr><tr><td valign=top><em><a name="z119_0s2" doxytag="MediumWan"></a><em>MediumWan</em></em>&nbsp;</td><td>A Wide Area Network (modem etc).</td></tr><tr><td valign=top><em><a name="z119_0s3" doxytag="MediumUnknown"></a><em>MediumUnknown</em></em>&nbsp;</td><td>Something else.</td></tr><tr><td valign=top><em><a name="z119_0s4" doxytag="NumMediumTypes"></a><em>NumMediumTypes</em></em>&nbsp;</td><td></td></tr></table></dl>    </td>  </tr></table><hr><h2>Constructor &amp; Destructor Documentation</h2><a name="z113_0" doxytag="PEthSocket::PEthSocket"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> PEthSocket::PEthSocket </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">PINDEX&nbsp;</td>          <td class="mdname" nowrap>&nbsp; <em>nReadBuffers</em> = 8, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>PINDEX&nbsp;</td>          <td class="mdname" nowrap>&nbsp; <em>nWriteBuffers</em> = 1, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>PINDEX&nbsp;</td>          <td class="mdname" nowrap>&nbsp; <em>size</em> = 1514</td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Create a new ethernet packet socket. Some platforms require a set of buffers to be allocated to avoid losing frequent packets. <dl compact><dt><b>Parameters: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em>nWriteBuffers</em>&nbsp;</td><td>Number of buffers used for reading. </td></tr><tr><td valign=top><em>size</em>&nbsp;</td><td>Number of buffers used for writing. Size of each buffer. </td></tr></table></dl>    </td>  </tr></table><a name="z113_1" doxytag="PEthSocket::~PEthSocket"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> PEthSocket::~PEthSocket </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>          <td class="md" valign="top">)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Close the socket.<p>    </td>  </tr></table><hr><h2>Member Function Documentation</h2><a name="z115_0" doxytag="PEthSocket::Close"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual BOOL PEthSocket::Close </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>          <td class="md" valign="top">)&nbsp;</td>          <td class="md" nowrap><code> [virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Close the channel, shutting down the link to the data source.<p><dl compact><dt><b>Returns: </b></dt><dd> TRUE if the channel successfully closed. </dl><p>Reimplemented from <a class="el" href="classPChannel.html#z53_1">PChannel</a>.    </td>  </tr></table><a name="z117_0" doxytag="PEthSocket::Connect"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual BOOL PEthSocket::Connect </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="classPString.html">PString</a> &amp;&nbsp;</td>          <td class="mdname1" valign="top" nowrap>&nbsp; <em>address</em>          </td>          <td class="md" valign="top">)&nbsp;</td>          <td class="md" nowrap><code> [virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Connect a socket to an interface. The first form opens an interface by a name as returned by the <a class="el" href="classPEthSocket.html#z119_1">EnumInterfaces()</a> function. The second opens the interface that has the specified MAC address.<p><dl compact><dt><b>Returns: </b></dt><dd> TRUE if the channel was successfully connected to the interface. </dl><dl compact><dt><b>Parameters: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em>address</em>&nbsp;</td><td>Name of interface to connect to. </td></tr></table></dl><p>Reimplemented from <a class="el" href="classPSocket.html#z369_1">PSocket</a>.    </td>  </tr></table><a name="z119_1" doxytag="PEthSocket::EnumInterfaces"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> BOOL PEthSocket::EnumInterfaces </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">PINDEX&nbsp;</td>          <td class="mdname" nowrap>&nbsp; <em>idx</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap><a class="el" href="classPString.html">PString</a> &amp;&nbsp;</td>          <td class="mdname" nowrap>&nbsp; <em>name</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table>

⌨️ 快捷键说明

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