<html> <head><title>ClanLib Reference: CL_Socket</title></head> <body text=black link=blue vlink=#800080 bgcolor=white topmargin=0 leftmargin=0> <table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td><img border=0 src="../images/eyeheader-main-purple-a.gif" alt="ClanSoft logo" width=525 height=96></td></tr> <tr bgcolor=#dadada><td align=left valign=top><img border=0 src="../images/eyeheader-main-purple-b.gif" alt="ClanSoft logo" width=190 height=14></td><td align=right valign=top><img border=0 src="../images/clanlib_light.gif" width=42 height=14></td></tr></table> <table align=center border=0 cellspacing=10> <tr> <td><a href="entire_class_index.html">Entire Class Index</a></td> <td><a href="class_index.html">Main Class Index</a></td> <td><a href="cross_index.html">Cross Index</a></td> <td><a href="global_index.html">Global Index</a></td> </table><h1 align=center>Class CL_Socket</h1><p> <b> This is the lowlevel raw socket interface in clanlib.</b><br> Contained in: <a href="global_index.html">global</a><br> Derived from: <i>none</i> <br> Derived by: <a href="CL_BufferedSocket.html">CL_BufferedSocket</a> <br>Group: Network (Sockets) <p> #include <ClanLib/network.h> <p> <hr noshade> <table border=0> <tr><td colspan=3><h3>public function member index:</h3></td> <tr valign=top><td align=left><h3>Construction:</h3></td> <tr valign=top><td align=right><tt></tt> </td><td align=right><a href="CL_Socket.html#2916"><tt><font color=blue><b>CL_Socket</b></font></tt></a></td><td><tt>()</tt>;</td> <tr valign=top><td align=right><tt></tt> </td><td align=right><a href="CL_Socket.html#2917"><tt><font color=blue><b>CL_Socket</b></font></tt></a></td><td><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>socket</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt></tt> </td><td align=right><a href="CL_Socket.html#2918"><tt><font color=blue><b>CL_Socket</b></font></tt></a></td><td><tt>(<tt><font color=navy>Type</font></tt> <tt><font color=blue>type</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt></tt> </td><td align=right><a href="CL_Socket.html#2919"><tt><font color=blue><b>CL_Socket</b></font></tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Socket.html#2946"><tt><font color=blue><b>CL_Socket</b></font></tt></a>& <tt><font color=blue>copy</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt>virtual</tt> </tt> </td><td align=right><a href="CL_Socket.html#2920"><tt><font color=blue><b>~CL_Socket</b></font></tt></a></td><td><tt>()</tt>;</td> <tr valign=top><td align=left><h3>Attributes:</h3></td> <tr valign=top><td align=right><tt><tt><font color=purple>int</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2923"><tt><font color=blue><b>get_socket</b></font></tt></a></td><td><tt>() <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><a href="CL_EventTrigger.html"><tt><font color=navy><b>CL_EventTrigger</b></font></tt></a>*</tt> </td><td align=right><a href="CL_Socket.html#2924"><tt><font color=blue><b>get_read_trigger</b></font></tt></a></td><td><tt>() <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><a href="CL_EventTrigger.html"><tt><font color=navy><b>CL_EventTrigger</b></font></tt></a>*</tt> </td><td align=right><a href="CL_Socket.html#2925"><tt><font color=blue><b>get_write_trigger</b></font></tt></a></td><td><tt>() <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><a href="CL_EventTrigger.html"><tt><font color=navy><b>CL_EventTrigger</b></font></tt></a>*</tt> </td><td align=right><a href="CL_Socket.html#2926"><tt><font color=blue><b>get_exception_trigger</b></font></tt></a></td><td><tt>() <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a></tt> </td><td align=right><a href="CL_Socket.html#2927"><tt><font color=blue><b>get_source_address</b></font></tt></a></td><td><tt>() <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a></tt> </td><td align=right><a href="CL_Socket.html#2928"><tt><font color=blue><b>get_dest_address</b></font></tt></a></td><td><tt>() <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Signal_v0.html"><tt><font color=navy><b>CL_Signal_v0</b></font></tt></a>&</tt> </td><td align=right><a href="CL_Socket.html#2929"><tt><font color=blue><b>sig_read_triggered</b></font></tt></a></td><td><tt>()</tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Signal_v0.html"><tt><font color=navy><b>CL_Signal_v0</b></font></tt></a>&</tt> </td><td align=right><a href="CL_Socket.html#2930"><tt><font color=blue><b>sig_write_triggered</b></font></tt></a></td><td><tt>()</tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Signal_v0.html"><tt><font color=navy><b>CL_Signal_v0</b></font></tt></a>&</tt> </td><td align=right><a href="CL_Socket.html#2931"><tt><font color=blue><b>sig_exception_triggered</b></font></tt></a></td><td><tt>()</tt>;</td> <tr valign=top><td align=left><h3>Operations:</h3></td> <tr valign=top><td align=right><tt><a href="CL_Socket.html#2946"><tt><font color=blue><b>CL_Socket</b></font></tt></a>&</tt> </td><td align=right><a href="CL_Socket.html#2932"><tt><font color=black><b>operator</b></font></tt><tt> =</tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Socket.html#2946"><tt><font color=blue><b>CL_Socket</b></font></tt></a>& <tt><font color=blue>other</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2933"><tt><font color=blue><b>set_nonblocking</b></font></tt></a></td><td><tt>(<tt><font color=purple>bool</font></tt> <tt><font color=blue>nonblocking</font></tt> = true)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2934"><tt><font color=blue><b>set_nodelay</b></font></tt></a></td><td><tt>(<tt><font color=purple>bool</font></tt> <tt><font color=blue>nodelay</font></tt> = true)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>int</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2935"><tt><font color=blue><b>send</b></font></tt></a></td><td><tt>(<tt>const</tt> <tt><font color=purple>void</font></tt>* <tt><font color=blue>data</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>size</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>int</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2936"><tt><font color=blue><b>send</b></font></tt></a></td><td><tt>(<tt>const</tt> <tt><font color=purple>void</font></tt>* <tt><font color=blue>data</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>size</font></tt>, <tt>const</tt> <a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a>& <tt><font color=blue>dest</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>int</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2937"><tt><font color=blue><b>send</b></font></tt></a></td><td><tt>(<tt>const</tt> <tt><font color=navy>std::string</font></tt>& <tt><font color=blue>string</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2938"><tt><font color=blue><b>push</b></font></tt></a></td><td><tt>(<tt>const</tt> <tt><font color=navy>std::string</font></tt>& <tt><font color=blue>string</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>int</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2939"><tt><font color=blue><b>recv</b></font></tt></a></td><td><tt>(<tt><font color=purple>void</font></tt>* <tt><font color=blue>data</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>size</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>int</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2940"><tt><font color=blue><b>recv</b></font></tt></a></td><td><tt>(<tt><font color=purple>void</font></tt>* <tt><font color=blue>data</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>size</font></tt>, <a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a>& <tt><font color=blue>from</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2941"><tt><font color=blue><b>connect</b></font></tt></a></td><td><tt>(<tt>const</tt> <a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a>& <tt><font color=blue>address</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2942"><tt><font color=blue><b>shutdown</b></font></tt></a></td><td><tt>(<tt><font color=navy>ShutdownHow</font></tt> <tt><font color=blue>how</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2943"><tt><font color=blue><b>bind</b></font></tt></a></td><td><tt>(<tt>const</tt> <a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a>& <tt><font color=blue>address</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Socket.html#2944"><tt><font color=blue><b>listen</b></font></tt></a></td><td><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>backlog</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Socket.html#2946"><tt><font color=blue><b>CL_Socket</b></font></tt></a></tt> </td><td align=right><a href="CL_Socket.html#2945"><tt><font color=blue><b>accept</b></font></tt></a></td><td><tt>()</tt>;</td> <tr valign=top><td align=left><h3>Implementation:</h3></td> <tr valign=top><td align=right><tt></tt> </td><td align=right><a href="CL_Socket.html#2946"><tt><font color=blue><b>CL_Socket</b></font></tt></a></td><td><tt>(<tt><font color=navy>class</font></tt> <tt><font color=blue>CL_Socket_Generic</font></tt>* <tt><font color=blue>impl</font></tt>)</tt>;</td> <tr><td> </td></table> <hr noshade> <h2>Description:</h2> Its main purpose is to write the C sockets API, providing error handling via exceptions, and socket waiting (select) via the clanlib event waiting system (<a href="CL_EventListener.html">CL_EventListener</a>, <a href="CL_EventTrigger.html">CL_EventTrigger</a>).<br><p> <hr noshade> <h2>Function Member Descriptions:</h2> <a name="2916"><font size=+1><b>CL_Socket::CL_Socket</b></font></a> - Constructs a null socket.<br><tt></tt> <a href="CL_Socket.html#2916"><tt><font color=blue><b>CL_Socket</b></font></tt></a><tt>()</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2917"><font size=+1><b>CL_Socket::CL_Socket</b></font></a> - Constructs an attached socket.<br><tt></tt> <a href="CL_Socket.html#2917"><tt><font color=blue><b>CL_Socket</b></font></tt></a><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>socket</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2918"><font size=+1><b>CL_Socket::CL_Socket</b></font></a> - Constructs a new socket using the specified protocol type.<br><tt></tt> <a href="CL_Socket.html#2918"><tt><font color=blue><b>CL_Socket</b></font></tt></a><tt>(<tt><font color=navy>Type</font></tt> <tt><font color=blue>type</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2919"><font size=+1><b>CL_Socket::CL_Socket</b></font></a> - Copy constructor.<br><tt></tt> <a href="CL_Socket.html#2919"><tt><font color=blue><b>CL_Socket</b></font></tt></a><tt>(<tt>const</tt> <a href="CL_Socket.html#2946"><tt><font color=blue><b>CL_Socket</b></font></tt></a>& <tt><font color=blue>copy</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2945"><font size=+1><b>CL_Socket::accept</b></font></a> - Accept a connection on the socket.<br><tt><a href="CL_Socket.html#2946"><tt><font color=blue><b>CL_Socket</b></font></tt></a></tt> <a href="CL_Socket.html#2945"><tt><font color=blue><b>accept</b></font></tt></a><tt>()</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2943"><font size=+1><b>CL_Socket::bind</b></font></a> - Bind the socket to the specified address.<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Socket.html#2943"><tt><font color=blue><b>bind</b></font></tt></a><tt>(<tt>const</tt> <a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a>& <tt><font color=blue>address</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2941"><font size=+1><b>CL_Socket::connect</b></font></a> - Initiate a connection on the socket.<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Socket.html#2941"><tt><font color=blue><b>connect</b></font></tt></a><tt>(<tt>const</tt> <a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a>& <tt><font color=blue>address</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2928"><font size=+1><b>CL_Socket::get_dest_address</b></font></a> - Returns the name of the destination socket we are connected to.<br><tt><a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a></tt> <a href="CL_Socket.html#2928"><tt><font color=blue><b>get_dest_address</b></font></tt></a><tt>() <tt>const</tt></tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2926"><font size=+1><b>CL_Socket::get_exception_trigger</b></font></a> - Returns an event trigger that triggers when an exception occurs on the socket.<br><tt><a href="CL_EventTrigger.html"><tt><font color=navy><b>CL_EventTrigger</b></font></tt></a>*</tt> <a href="CL_Socket.html#2926"><tt><font color=blue><b>get_exception_trigger</b></font></tt></a><tt>() <tt>const</tt></tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2924"><font size=+1><b>CL_Socket::get_read_trigger</b></font></a> - Returns an event trigger that triggers when socket has data ready to be read.<br><tt><a href="CL_EventTrigger.html"><tt><font color=navy><b>CL_EventTrigger</b></font></tt></a>*</tt> <a href="CL_Socket.html#2924"><tt><font color=blue><b>get_read_trigger</b></font></tt></a><tt>() <tt>const</tt></tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2923"><font size=+1><b>CL_Socket::get_socket</b></font></a> - Returns the raw socket handle (for use with the lowlevel socket functions).<br><tt><tt><font color=purple>int</font></tt></tt> <a href="CL_Socket.html#2923"><tt><font color=blue><b>get_socket</b></font></tt></a><tt>() <tt>const</tt></tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2927"><font size=+1><b>CL_Socket::get_source_address</b></font></a> - Returns the socket name.<br><tt><a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a></tt> <a href="CL_Socket.html#2927"><tt><font color=blue><b>get_source_address</b></font></tt></a><tt>() <tt>const</tt></tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2925"><font size=+1><b>CL_Socket::get_write_trigger</b></font></a> - Returns an event trigger that triggers when socket is ready for additional data.<br><tt><a href="CL_EventTrigger.html"><tt><font color=navy><b>CL_EventTrigger</b></font></tt></a>*</tt> <a href="CL_Socket.html#2925"><tt><font color=blue><b>get_write_trigger</b></font></tt></a><tt>() <tt>const</tt></tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2944"><font size=+1><b>CL_Socket::listen</b></font></a> - Listen for connections on the socket.<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Socket.html#2944"><tt><font color=blue><b>listen</b></font></tt></a><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>backlog</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2932"><font size=+1><b>CL_Socket::operator =</b></font></a> - Copy operator<br><tt><a href="CL_Socket.html#2946"><tt><font color=blue><b>CL_Socket</b></font></tt></a>&</tt> <a href="CL_Socket.html#2932"><tt><font color=black><b>operator</b></font></tt><tt> =</tt></a><tt>(<tt>const</tt> <a href="CL_Socket.html#2946"><tt><font color=blue><b>CL_Socket</b></font></tt></a>& <tt><font color=blue>other</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2939"><font size=+1><b>CL_Socket::recv</b></font></a> - Reads data from the socket. Returns the amount that was read.<br><tt><tt><font color=purple>int</font></tt></tt> <a href="CL_Socket.html#2939"><tt><font color=blue><b>recv</b></font></tt></a><tt>(<tt><font color=purple>void</font></tt>* <tt><font color=blue>data</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>size</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2940"><font size=+1><b>CL_Socket::recv</b></font></a> - Reads data from the socket, storing the from address in the passed parameter.<br><tt><tt><font color=purple>int</font></tt></tt> <a href="CL_Socket.html#2940"><tt><font color=blue><b>recv</b></font></tt></a><tt>(<tt><font color=purple>void</font></tt>* <tt><font color=blue>data</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>size</font></tt>, <a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a>& <tt><font color=blue>from</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2935"><font size=+1><b>CL_Socket::send</b></font></a> - Writes data to socket. Returns the amount that was written.<br><tt><tt><font color=purple>int</font></tt></tt> <a href="CL_Socket.html#2935"><tt><font color=blue><b>send</b></font></tt></a><tt>(<tt>const</tt> <tt><font color=purple>void</font></tt>* <tt><font color=blue>data</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>size</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2936"><font size=+1><b>CL_Socket::send</b></font></a> - Writes data to socket, using the specified destination host.<br><tt><tt><font color=purple>int</font></tt></tt> <a href="CL_Socket.html#2936"><tt><font color=blue><b>send</b></font></tt></a><tt>(<tt>const</tt> <tt><font color=purple>void</font></tt>* <tt><font color=blue>data</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>size</font></tt>, <tt>const</tt> <a href="CL_IPAddress.html"><tt><font color=navy><b>CL_IPAddress</b></font></tt></a>& <tt><font color=blue>dest</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2934"><font size=+1><b>CL_Socket::set_nodelay</b></font></a> - If enabled, don't delay send to coalesce packets.<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Socket.html#2934"><tt><font color=blue><b>set_nodelay</b></font></tt></a><tt>(<tt><font color=purple>bool</font></tt> <tt><font color=blue>nodelay</font></tt> = true)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2933"><font size=+1><b>CL_Socket::set_nonblocking</b></font></a> - Sets the socket blocking mode.<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Socket.html#2933"><tt><font color=blue><b>set_nonblocking</b></font></tt></a><tt>(<tt><font color=purple>bool</font></tt> <tt><font color=blue>nonblocking</font></tt> = true)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2942"><font size=+1><b>CL_Socket::shutdown</b></font></a> - Shut down part of full-duplex connection.<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Socket.html#2942"><tt><font color=blue><b>shutdown</b></font></tt></a><tt>(<tt><font color=navy>ShutdownHow</font></tt> <tt><font color=blue>how</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2931"><font size=+1><b>CL_Socket::sig_exception_triggered</b></font></a> - This signal is invoked when an exception occurred on the socket.<br><tt><a href="CL_Signal_v0.html"><tt><font color=navy><b>CL_Signal_v0</b></font></tt></a>&</tt> <a href="CL_Socket.html#2931"><tt><font color=blue><b>sig_exception_triggered</b></font></tt></a><tt>()</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2929"><font size=+1><b>CL_Socket::sig_read_triggered</b></font></a> - This signal is invoked when the socket has data ready to be read.<br><tt><a href="CL_Signal_v0.html"><tt><font color=navy><b>CL_Signal_v0</b></font></tt></a>&</tt> <a href="CL_Socket.html#2929"><tt><font color=blue><b>sig_read_triggered</b></font></tt></a><tt>()</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2930"><font size=+1><b>CL_Socket::sig_write_triggered</b></font></a> - This signal is invoked when the socket has data ready to be written.<br><tt><a href="CL_Signal_v0.html"><tt><font color=navy><b>CL_Signal_v0</b></font></tt></a>&</tt> <a href="CL_Socket.html#2930"><tt><font color=blue><b>sig_write_triggered</b></font></tt></a><tt>()</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="2920"><font size=+1><b>CL_Socket::~CL_Socket</b></font></a> - Socket destructor<br><tt><tt>virtual</tt> </tt> <a href="CL_Socket.html#2920"><tt><font color=blue><b>~CL_Socket</b></font></tt></a><tt>()</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <hr noshade> <h2>Variable Member Descriptions:</h2> <a name="2921"><font size=+1><b>CL_Socket::input</b></font></a> - Input source that operates on the socket.<br> <tt><a href="CL_InputSource_Socket.html"><tt><font color=navy><b>CL_InputSource_Socket</b></font></tt></a> </tt> <tt><a href="CL_Socket.html#2921"><tt><font color=blue>input</font></tt></a>;</tt><hr size="1" width="70%" align="left" noshade="noshade"><br> <a name="2922"><font size=+1><b>CL_Socket::output</b></font></a> - Output source that operates on the socket.<br> <tt><a href="CL_OutputSource_Socket.html"><tt><font color=navy><b>CL_OutputSource_Socket</b></font></tt></a> </tt> <tt><a href="CL_Socket.html#2922"><tt><font color=blue>output</font></tt></a>;</tt><hr size="1" width="70%" align="left" noshade="noshade"><br> <hr noshade> </body> </html>