<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>Crypto++: Socket Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Socket Class Reference</h1><!-- doxytag: class="Socket" --> <p>wrapper for Windows or Berkeley Sockets <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="socketft_8h_source.html">socketft.h</a>></code></p> <div class="dynheader"> Inheritance diagram for Socket:</div> <div class="dynsection"> <div class="center"> <img src="class_socket.gif" usemap="#Socket_map" alt=""/> <map id="Socket_map" name="Socket_map"> <area href="class_socket_sink.html" alt="SocketSink" shape="rect" coords="0,56,91,80"/> <area href="class_socket_source.html" alt="SocketSource" shape="rect" coords="101,56,192,80"/> </map> </div> </div> <p><a href="class_socket-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="class_socket_1_1_err.html">Err</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">exception thrown by <a class="el" href="class_socket.html" title="wrapper for Windows or Berkeley Sockets">Socket</a> class <a href="class_socket_1_1_err.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2222e93c575f9cc11a04c3d6c7b9d46"></a><!-- doxytag: member="Socket::Socket" ref="ab2222e93c575f9cc11a04c3d6c7b9d46" args="(socket_t s=INVALID_SOCKET, bool own=false)" --> </td><td class="memItemRight" valign="bottom"><b>Socket</b> (socket_t s=INVALID_SOCKET, bool own=false)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f1fd8cc9933ec43a4b9b11948df8702"></a><!-- doxytag: member="Socket::Socket" ref="a0f1fd8cc9933ec43a4b9b11948df8702" args="(const Socket &s)" --> </td><td class="memItemRight" valign="bottom"><b>Socket</b> (const <a class="el" href="class_socket.html">Socket</a> &s)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a501083e2de4baf5f0af8520946632757"></a><!-- doxytag: member="Socket::GetOwnership" ref="a501083e2de4baf5f0af8520946632757" args="() const " --> bool </td><td class="memItemRight" valign="bottom"><b>GetOwnership</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abba0e10eb3f73eadd83193585bb51716"></a><!-- doxytag: member="Socket::SetOwnership" ref="abba0e10eb3f73eadd83193585bb51716" args="(bool own)" --> void </td><td class="memItemRight" valign="bottom"><b>SetOwnership</b> (bool own)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f22f22b934dc8c3b9a3dae68551f87e"></a><!-- doxytag: member="Socket::operator socket_t" ref="a2f22f22b934dc8c3b9a3dae68551f87e" args="()" --> </td><td class="memItemRight" valign="bottom"><b>operator socket_t</b> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a02125cd8dcddb02608d6db21078e3f10"></a><!-- doxytag: member="Socket::GetSocket" ref="a02125cd8dcddb02608d6db21078e3f10" args="() const " --> socket_t </td><td class="memItemRight" valign="bottom"><b>GetSocket</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a02a47851259d4a225958441d1b4dd37a"></a><!-- doxytag: member="Socket::AttachSocket" ref="a02a47851259d4a225958441d1b4dd37a" args="(socket_t s, bool own=false)" --> void </td><td class="memItemRight" valign="bottom"><b>AttachSocket</b> (socket_t s, bool own=false)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76ffdeb9e72db2f3212493e2f4d6e663"></a><!-- doxytag: member="Socket::DetachSocket" ref="a76ffdeb9e72db2f3212493e2f4d6e663" args="()" --> socket_t </td><td class="memItemRight" valign="bottom"><b>DetachSocket</b> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5aa350ff51f6db7919316c94643acbf2"></a><!-- doxytag: member="Socket::CloseSocket" ref="a5aa350ff51f6db7919316c94643acbf2" args="()" --> void </td><td class="memItemRight" valign="bottom"><b>CloseSocket</b> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a262bc03b258ef9c5ab7afee5c078c29e"></a><!-- doxytag: member="Socket::Create" ref="a262bc03b258ef9c5ab7afee5c078c29e" args="(int nType=SOCK_STREAM)" --> void </td><td class="memItemRight" valign="bottom"><b>Create</b> (int nType=SOCK_STREAM)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af73c8b8aa512e3ea0150b6d323b60700"></a><!-- doxytag: member="Socket::Bind" ref="af73c8b8aa512e3ea0150b6d323b60700" args="(unsigned int port, const char *addr=NULL)" --> void </td><td class="memItemRight" valign="bottom"><b>Bind</b> (unsigned int port, const char *addr=NULL)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6798996910341aac9df3bf6f89a4c11"></a><!-- doxytag: member="Socket::Bind" ref="af6798996910341aac9df3bf6f89a4c11" args="(const sockaddr *psa, socklen_t saLen)" --> void </td><td class="memItemRight" valign="bottom"><b>Bind</b> (const sockaddr *psa, socklen_t saLen)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0f96de45801e101b226a9954ae34d74"></a><!-- doxytag: member="Socket::Listen" ref="aa0f96de45801e101b226a9954ae34d74" args="(int backlog=5)" --> void </td><td class="memItemRight" valign="bottom"><b>Listen</b> (int backlog=5)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6db2452bbe371340e748744e0600e43"></a><!-- doxytag: member="Socket::Connect" ref="af6db2452bbe371340e748744e0600e43" args="(const char *addr, unsigned int port)" --> bool </td><td class="memItemRight" valign="bottom"><b>Connect</b> (const char *addr, unsigned int port)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e379f47deb48d113df6d782b3214572"></a><!-- doxytag: member="Socket::Connect" ref="a3e379f47deb48d113df6d782b3214572" args="(const sockaddr *psa, socklen_t saLen)" --> bool </td><td class="memItemRight" valign="bottom"><b>Connect</b> (const sockaddr *psa, socklen_t saLen)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49b3cbb0430f638355a066566e243d3f"></a><!-- doxytag: member="Socket::Accept" ref="a49b3cbb0430f638355a066566e243d3f" args="(Socket &s, sockaddr *psa=NULL, socklen_t *psaLen=NULL)" --> bool </td><td class="memItemRight" valign="bottom"><b>Accept</b> (<a class="el" href="class_socket.html">Socket</a> &s, sockaddr *psa=NULL, socklen_t *psaLen=NULL)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeeee4469c3eeae609728e88113276545"></a><!-- doxytag: member="Socket::GetSockName" ref="aeeee4469c3eeae609728e88113276545" args="(sockaddr *psa, socklen_t *psaLen)" --> void </td><td class="memItemRight" valign="bottom"><b>GetSockName</b> (sockaddr *psa, socklen_t *psaLen)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aabe0ad8b636dbb2f2d0fff8ab14df8a7"></a><!-- doxytag: member="Socket::GetPeerName" ref="aabe0ad8b636dbb2f2d0fff8ab14df8a7" args="(sockaddr *psa, socklen_t *psaLen)" --> void </td><td class="memItemRight" valign="bottom"><b>GetPeerName</b> (sockaddr *psa, socklen_t *psaLen)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f0f142b8773be9129b4664686a00463"></a><!-- doxytag: member="Socket::Send" ref="a3f0f142b8773be9129b4664686a00463" args="(const byte *buf, size_t bufLen, int flags=0)" --> unsigned int </td><td class="memItemRight" valign="bottom"><b>Send</b> (const byte *buf, size_t bufLen, int flags=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70da2e36472cbdf892f9b53f61bf807e"></a><!-- doxytag: member="Socket::Receive" ref="a70da2e36472cbdf892f9b53f61bf807e" args="(byte *buf, size_t bufLen, int flags=0)" --> unsigned int </td><td class="memItemRight" valign="bottom"><b>Receive</b> (byte *buf, size_t bufLen, int flags=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44fa23c55391354e5ce763810048f534"></a><!-- doxytag: member="Socket::ShutDown" ref="a44fa23c55391354e5ce763810048f534" args="(int how=SD_SEND)" --> void </td><td class="memItemRight" valign="bottom"><b>ShutDown</b> (int how=SD_SEND)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b0126a0be1b112f59c7defab74e8230"></a><!-- doxytag: member="Socket::IOCtl" ref="a0b0126a0be1b112f59c7defab74e8230" args="(long cmd, unsigned long *argp)" --> void </td><td class="memItemRight" valign="bottom"><b>IOCtl</b> (long cmd, unsigned long *argp)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e36546ea37ec18ac0bdb5ae4ac8576b"></a><!-- doxytag: member="Socket::SendReady" ref="a5e36546ea37ec18ac0bdb5ae4ac8576b" args="(const timeval *timeout)" --> bool </td><td class="memItemRight" valign="bottom"><b>SendReady</b> (const timeval *timeout)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae44e8895720eaada63131354415b6ba3"></a><!-- doxytag: member="Socket::ReceiveReady" ref="ae44e8895720eaada63131354415b6ba3" args="(const timeval *timeout)" --> bool </td><td class="memItemRight" valign="bottom"><b>ReceiveReady</b> (const timeval *timeout)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa2ef5204ea0d284b6ef003b06c3e6a2d"></a><!-- doxytag: member="Socket::HandleError" ref="aa2ef5204ea0d284b6ef003b06c3e6a2d" args="(const char *operation) const " --> virtual void </td><td class="memItemRight" valign="bottom"><b>HandleError</b> (const char *operation) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aebf290bcbd37f0711fcb56373b4f8f88"></a><!-- doxytag: member="Socket::CheckAndHandleError_int" ref="aebf290bcbd37f0711fcb56373b4f8f88" args="(const char *operation, int result) const " --> void </td><td class="memItemRight" valign="bottom"><b>CheckAndHandleError_int</b> (const char *operation, int result) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e01d22ab7ca85c01bf3a293d1c98d47"></a><!-- doxytag: member="Socket::CheckAndHandleError" ref="a4e01d22ab7ca85c01bf3a293d1c98d47" args="(const char *operation, socket_t result) const " --> void </td><td class="memItemRight" valign="bottom"><b>CheckAndHandleError</b> (const char *operation, socket_t result) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a421dc546e295319caec745c2924baf59"></a><!-- doxytag: member="Socket::CheckAndHandleError" ref="a421dc546e295319caec745c2924baf59" args="(const char *operation, BOOL result) const " --> void </td><td class="memItemRight" valign="bottom"><b>CheckAndHandleError</b> (const char *operation, BOOL result) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a915dd17e7ea95af7546d9c611730b40e"></a><!-- doxytag: member="Socket::CheckAndHandleError" ref="a915dd17e7ea95af7546d9c611730b40e" args="(const char *operation, bool result) const " --> void </td><td class="memItemRight" valign="bottom"><b>CheckAndHandleError</b> (const char *operation, bool result) const </td></tr> <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6417cdd4aec086457b67eb34d0964f57"></a><!-- doxytag: member="Socket::PortNameToNumber" ref="a6417cdd4aec086457b67eb34d0964f57" args="(const char *name, const char *protocol="tcp")" --> static unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_socket.html#a6417cdd4aec086457b67eb34d0964f57">PortNameToNumber</a> (const char *name, const char *protocol="tcp")</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">look up the port number given its name, returns 0 if not found <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a653d3bf891dceca75bee878574b98df3"></a><!-- doxytag: member="Socket::StartSockets" ref="a653d3bf891dceca75bee878574b98df3" args="()" --> static void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_socket.html#a653d3bf891dceca75bee878574b98df3">StartSockets</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">start Windows Sockets 2 <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a078a98371080e50a230f6a4950e408c0"></a><!-- doxytag: member="Socket::ShutdownSockets" ref="a078a98371080e50a230f6a4950e408c0" args="()" --> static void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_socket.html#a078a98371080e50a230f6a4950e408c0">ShutdownSockets</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">calls WSACleanup for Windows Sockets <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cf0d25a9da54bbe641dbb89bee452bc"></a><!-- doxytag: member="Socket::GetLastError" ref="a9cf0d25a9da54bbe641dbb89bee452bc" args="()" --> static int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_socket.html#a9cf0d25a9da54bbe641dbb89bee452bc">GetLastError</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">returns errno or WSAGetLastError <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c34f549b69c55bf0ee4c04ea8890bef"></a><!-- doxytag: member="Socket::SetLastError" ref="a8c34f549b69c55bf0ee4c04ea8890bef" args="(int errorCode)" --> static void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_socket.html#a8c34f549b69c55bf0ee4c04ea8890bef">SetLastError</a> (int errorCode)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">sets errno or calls WSASetLastError <br/></td></tr> <tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="affc033fc4e71e70f18532e9f280edf46"></a><!-- doxytag: member="Socket::SocketChanged" ref="affc033fc4e71e70f18532e9f280edf46" args="()" --> virtual void </td><td class="memItemRight" valign="bottom"><b>SocketChanged</b> ()</td></tr> <tr><td colspan="2"><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a82c6dd3794c4d45e33e68f2112df35"></a><!-- doxytag: member="Socket::m_s" ref="a2a82c6dd3794c4d45e33e68f2112df35" args="" --> socket_t </td><td class="memItemRight" valign="bottom"><b>m_s</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7427769bcbc6ee3ef44e223424fb535"></a><!-- doxytag: member="Socket::m_own" ref="ae7427769bcbc6ee3ef44e223424fb535" args="" --> bool </td><td class="memItemRight" valign="bottom"><b>m_own</b></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>wrapper for Windows or Berkeley Sockets </p> <p>Definition at line <a class="el" href="socketft_8h_source.html#l00043">43</a> of file <a class="el" href="socketft_8h_source.html">socketft.h</a>.</p> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="socketft_8h_source.html">socketft.h</a></li> <li><a class="el" href="socketft_8cpp_source.html">socketft.cpp</a></li> </ul> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on 9 Dec 2009 for Crypto++ by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>