aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02444.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02444.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a02444.html')
-rw-r--r--docs/doxygen/nel/a02444.html1524
1 files changed, 1524 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02444.html b/docs/doxygen/nel/a02444.html
new file mode 100644
index 00000000..6a434137
--- /dev/null
+++ b/docs/doxygen/nel/a02444.html
@@ -0,0 +1,1524 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLNET::CSock class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLNET::CSock Class Reference</h1><code>#include &lt;<a class="el" href="a06405.html">sock.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLNET::CSock:
+<p><center><img src="a02444.png" usemap="#NLNET::CSock_map" border="0" alt=""></center>
+<map name="NLNET::CSock_map">
+<area href="a02445.html" alt="NLNET::CTcpSock" shape="rect" coords="83,56,240,80">
+<area href="a03628.html" alt="NLNET::CUdpSock" shape="rect" coords="250,56,407,80">
+<area href="a02443.html" alt="NLNET::CDummyTcpSock" shape="rect" coords="0,112,157,136">
+<area href="a02769.html" alt="NLNET::CListenSock" shape="rect" coords="167,112,324,136">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<a class="el" href="a02444.html">CSock</a>: base socket class. One <a class="el" href="a02444.html">CSock</a> object represents a communication between two hosts, the local one and the remote one. This class implements layer 0 of the NeL Network Engine. This class does not handle conversion between big endian and little endian ; the provided buffers are sent raw.<p>
+The "logging" boolean value is necessary because in this implementation we always log to one single global CLog object : there is not one CLog object per socket. Therefore we must prevent the socket used in <a class="el" href="a02985.html">CNetDisplayer</a> from logging itself... otherwise we would have an infinite recursion.<p>
+The "connected" property may have a different meaning whether the socket is a stream socket (e.g. using TCP) or it is a connectionless datagram socket (e.g. using UDP). In the latter, "connected" only means that the local and the remote addresses have been set.<p>
+Important note: this class is thread-safe, meaning you can access to a <a class="el" href="a02444.html">CSock</a> object from multiple threads BUT the only things you are allow to do in parallel are receive/send and read the <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_0">connected()</a> property.<p>
+You must call <a class="el" href="a02444.html#NLNET_1_1CUdpSocke3">CSock::initNetwork()</a> before using any network class (even <a class="el" href="a02665.html">CInetAddress</a>). You must call <a class="el" href="a02444.html#NLNET_1_1CUdpSocke4">CSock::releaseNetwork()</a> at the end of your program.<p>
+By default, a socket is in blocking mode. Call <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_3">setNonBlockingMode()</a> to change this behaviour. <dl compact><dt><b>Author:</b></dt><dd>Olivier Cado <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2000-2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00121">121</a> of file <a class="el" href="a06405.html">sock.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Socket setup</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_0">close</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_1">connect</a> (const <a class="el" href="a02665.html">CInetAddress</a> &amp;<a class="el" href="a04223.html#a657">addr</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_2">nonBlockingMode</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the nonblocking mode. <a href="#NLNET_1_1CUdpSockz2103_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_3">setNonBlockingMode</a> (bool bm)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CSockz2103_4">~CSock</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor (shutdown + close). <a href="#NLNET_1_1CSockz2103_4"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Receiving data</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2105_0">dataAvailable</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks if there is some data to receive, waiting (blocking) at most for the time out value. <a href="#NLNET_1_1CUdpSockz2105_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02444.html#NLNET_1_1CUdpSockw3">CSock::TSockResult</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CTcpSockz2105_1">receive</a> (<a class="el" href="a04558.html#a7">uint8</a> *<a class="el" href="a04223.html#a589">buffer</a>, <a class="el" href="a04558.html#a11">uint32</a> &amp;<a class="el" href="a04223.html#a571">len</a>, bool throw_exception=true)</td></tr>
+
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockw3">TSockResult</a> { <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw2">Ok</a>,
+<a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw4">WouldBlock</a>,
+<a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw0">ConnectionClosed</a>,
+<a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw1">Error</a>
+ }</td></tr>
+
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocka0">bytesReceived</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of bytes received since the latest connection. <a href="#NLNET_1_1CUdpSocka0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocka1">bytesSent</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of bytes sent since the latest connection. <a href="#NLNET_1_1CUdpSocka1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocka2">getSendBufferSize</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the send buffer size. <a href="#NLNET_1_1CUdpSocka2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocka3">setSendBufferSize</a> (<a class="el" href="a04558.html#a10">sint32</a> <a class="el" href="a04223.html#a587">size</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the send buffer size. <a href="#NLNET_1_1CUdpSocka3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocka4">setTimeOutValue</a> (long sec, long ms)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change the time out value used in getDataAvailable(), which is 0 by default. <a href="#NLNET_1_1CUdpSocka4"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocke0">errorString</a> (<a class="el" href="a04558.html#a15">uint</a> errorcode)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a string explaining the network error (see <a class="el" href="a02444.html#NLNET_1_1CUdpSocke1">getLastError()</a>). <a href="#NLNET_1_1CUdpSocke0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocke1">getLastError</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocke2">initialized</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the network engine is initialized. <a href="#NLNET_1_1CUdpSocke2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocke3">initNetwork</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the network engine, if it is not already done. <a href="#NLNET_1_1CUdpSocke3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSocke4">releaseNetwork</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Releases the network engine. <a href="#NLNET_1_1CUdpSocke4"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockb0">createSocket</a> (int <a class="el" href="a04223.html#a581">type</a>, int protocol)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates the socket and get a valid descriptor. <a href="#NLNET_1_1CUdpSockb0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CSockb1">CSock</a> (SOCKET sock, const <a class="el" href="a02665.html">CInetAddress</a> &amp;remoteaddr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a <a class="el" href="a02444.html">CSock</a> object using an existing connected socket descriptor and its associated remote address. <a href="#NLNET_1_1CSockb1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CSockb2">CSock</a> (bool logging=true)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockb1">setLocalAddress</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the local address. <a href="#NLNET_1_1CUdpSockb1"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp0">_BytesReceived</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of bytes received on this socket. <a href="#NLNET_1_1CUdpSockp0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp1">_BytesSent</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of bytes sent on this socket. <a href="#NLNET_1_1CUdpSockp1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>volatile bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp2">_Connected</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True after calling <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_1">connect()</a>. <a href="#NLNET_1_1CUdpSockp2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02665.html">CInetAddress</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp3">_LocalAddr</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Address of local host (valid if connected). <a href="#NLNET_1_1CUdpSockp3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp4">_Logging</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If false, do not log any information. <a href="#NLNET_1_1CUdpSockp4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp5">_NonBlocking</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If true, the socket is in nonblocking mode. <a href="#NLNET_1_1CUdpSockp5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02665.html">CInetAddress</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp6">_RemoteAddr</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Address of the remote host (valid if connected). <a href="#NLNET_1_1CUdpSockp6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>SOCKET&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp7">_Sock</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Socket descriptor. <a href="#NLNET_1_1CUdpSockp7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp8">_TimeoutMs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Secondary time out value (ms) for select in <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2105_0">dataAvailable()</a>. <a href="#NLNET_1_1CUdpSockp8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockp9">_TimeoutS</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main time out value (sec) for select in <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2105_0">dataAvailable()</a>. <a href="#NLNET_1_1CUdpSockp9"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CSockr0">_MaxReceiveTime</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CSockr1">_MaxSendTime</a></td></tr>
+
+<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CSockv0">_Initialized</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if the network library has been initialized. <a href="#NLNET_1_1CSockv0"></a><br><br></td></tr>
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NLNET_1_1CUdpSockw3" doxytag="NLNET::CSock::TSockResult" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3">NLNET::CSock::TSockResult</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw2" doxytag="Ok" ></a>Ok</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw4" doxytag="WouldBlock" ></a>WouldBlock</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw0" doxytag="ConnectionClosed" ></a>ConnectionClosed</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw1" doxytag="Error" ></a>Error</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00125">125</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+<div class="fragment"><pre>00125 { <a class="code" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw2">Ok</a>, <a class="code" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw4">WouldBlock</a>, <a class="code" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw0">ConnectionClosed</a>, <a class="code" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw1">Error</a> };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLNET_1_1CSockz2103_4" doxytag="NLNET::CSock::~CSock" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual NLNET::CSock::~<a class="el" href="a02444.html">CSock</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&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>
+Destructor (shutdown + close).
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CSockb2" doxytag="NLNET::CSock::CSock" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CSock::CSock </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>logging</em> = true </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>logging</em>&nbsp;</td><td>Disable logging if the server socket object is used by the logging system, to avoid infinite recursion</td></tr>
+ </table>
+</dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CSockb1" doxytag="NLNET::CSock::CSock" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CSock::CSock </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">SOCKET&nbsp;</td>
+ <td class="mdname" nowrap> <em>sock</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>remoteaddr</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Construct a <a class="el" href="a02444.html">CSock</a> object using an existing connected socket descriptor and its associated remote address.
+<p>
+ </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLNET_1_1CUdpSocka0" doxytag="NLNET::CSock::bytesReceived" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a13">uint64</a> NLNET::CSock::bytesReceived </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the number of bytes received since the latest connection.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00249">249</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+Referenced by <a class="el" href="a05507.html#l00172">NLNET::CBufClient::bytesDownloaded()</a>.
+<p>
+<div class="fragment"><pre>00249 { <span class="keywordflow">return</span> <a class="code" href="a02444.html#NLNET_1_1CUdpSockp0">_BytesReceived</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocka1" doxytag="NLNET::CSock::bytesSent" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a13">uint64</a> NLNET::CSock::bytesSent </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the number of bytes sent since the latest connection.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00252">252</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+Referenced by <a class="el" href="a05507.html#l00175">NLNET::CBufClient::bytesUploaded()</a>.
+<p>
+<div class="fragment"><pre>00252 { <span class="keywordflow">return</span> <a class="code" href="a02444.html#NLNET_1_1CUdpSockp1">_BytesSent</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2103_0" doxytag="NLNET::CSock::close" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual void NLNET::CSock::close </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&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>
+Closes the socket (without shutdown) In general you don't need to call this method. But you can call it to:<ul>
+<li>close a listening socket (i.e. stop accepting connections), or</li><li>stop a select() in progress in another thread (in this case, just calling the destructor is not enough)</li></ul>
+
+<p>
+Reimplemented in <a class="el" href="a02443.html#NLNET_1_1CDummyTcpSocka3">NLNET::CDummyTcpSock</a>.
+<p>
+Referenced by <a class="el" href="a06641.html#l00231">NLNET::CUdpSimSock::close()</a>, <a class="el" href="a05513.html#l00101">NLNET::CListenTask::close()</a>, <a class="el" href="a06487.html#l00080">NLNET::CTcpSock::connect()</a>, and <a class="el" href="a05670.html#l00128">NLNET::sendEmail()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2103_1" doxytag="NLNET::CSock::connect" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual void NLNET::CSock::connect </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>addr</em> </td>
+ <td class="md" valign="top">&nbsp;)&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>
+Connection. This method does not return a boolean, otherwise a programmer could ignore the result and no exception would be thrown if connection fails :<ul>
+<li>If addr is not valid, an exception <a class="el" href="a03810.html">ESocket</a> is thrown</li><li>If <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_1">connect()</a> fails for another reason, an exception <a class="el" href="a03812.html">ESocketConnectionFailed</a> is thrown</li></ul>
+
+<p>
+Reimplemented in <a class="el" href="a02443.html#NLNET_1_1CDummyTcpSocka4">NLNET::CDummyTcpSock</a>, and <a class="el" href="a02445.html#NLNET_1_1CTcpSockz2111_0">NLNET::CTcpSock</a>.
+<p>
+Referenced by <a class="el" href="a06641.html#l00226">NLNET::CUdpSimSock::connect()</a>, and <a class="el" href="a05958.html#l00101">NLNET::CLoginClient::connectToShard()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2109_0" doxytag="NLNET::CSock::connected" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLNET::CSock::connected </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&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>
+Returns if the socket is connected (mutexed).
+<p>
+
+<p>
+Referenced by <a class="el" href="a05524.html#l00286">NLNET::CCallbackClient::connect()</a>, <a class="el" href="a05514.html#l00295">NLNET::CBufSock::connect()</a>, <a class="el" href="a05506.html#l00085">NLNET::CBufClient::connect()</a>, <a class="el" href="a06641.html#l00306">NLNET::CUdpSimSock::connected()</a>, <a class="el" href="a05958.html#l00101">NLNET::CLoginClient::connectToShard()</a>, <a class="el" href="a05512.html#l00251">NLNET::CBufServer::disconnect()</a>, <a class="el" href="a05506.html#l00318">NLNET::CBufClient::disconnect()</a>, <a class="el" href="a05515.html#l00178">NLNET::CBufSock::pushBuffer()</a>, <a class="el" href="a05670.html#l00128">NLNET::sendEmail()</a>, <a class="el" href="a05506.html#l00296">NLNET::CBufClient::update()</a>, and <a class="el" href="a05506.html#l00397">NLNET::CBufClient::~CBufClient()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockb0" doxytag="NLNET::CSock::createSocket" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CSock::createSocket </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname" nowrap> <em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap> <em>protocol</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Creates the socket and get a valid descriptor.
+<p>
+
+<p>
+Referenced by <a class="el" href="a05913.html#l00063">NLNET::CListenSock::CListenSock()</a>, <a class="el" href="a06487.html#l00080">NLNET::CTcpSock::connect()</a>, <a class="el" href="a06487.html#l00161">NLNET::CTcpSock::connectWithCustomWindowSize()</a>, and <a class="el" href="a06643.html#l00062">NLNET::CUdpSock::CUdpSock()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2105_0" doxytag="NLNET::CSock::dataAvailable" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLNET::CSock::dataAvailable </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&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>
+Checks if there is some data to receive, waiting (blocking) at most for the time out value.
+<p>
+
+<p>
+Referenced by <a class="el" href="a06641.html#l00238">NLNET::CUdpSimSock::dataAvailable()</a>, and <a class="el" href="a05506.html#l00437">NLNET::CClientReceiveTask::run()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2109_1" doxytag="NLNET::CSock::descriptor" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> SOCKET NLNET::CSock::descriptor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the socket descriptor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00241">241</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+References <a class="el" href="a06405.html#l00281">_Sock</a>.
+<p>
+Referenced by <a class="el" href="a05514.html#l00329">NLNET::CBufSock::asString()</a>, and <a class="el" href="a05512.html#l00779">NLNET::CListenTask::run()</a>.
+<p>
+<div class="fragment"><pre>00241 { <span class="keywordflow">return</span> <a class="code" href="a02444.html#NLNET_1_1CUdpSockp7">_Sock</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocke0" doxytag="NLNET::CSock::errorString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NLNET::CSock::errorString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>errorcode</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns a string explaining the network error (see <a class="el" href="a02444.html#NLNET_1_1CUdpSocke1">getLastError()</a>).
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocke1" doxytag="NLNET::CSock::getLastError" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> NLNET::CSock::getLastError </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the code of the last error that has occured. Note: This code is platform-dependant. On Unix, it is errno; on Windows it is the Winsock error code. See also <a class="el" href="a02444.html#NLNET_1_1CUdpSocke0">errorString()</a> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocka2" doxytag="NLNET::CSock::getSendBufferSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a10">sint32</a> NLNET::CSock::getSendBufferSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&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>
+Gets the send buffer size.
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocke2" doxytag="NLNET::CSock::initialized" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLNET::CSock::initialized </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if the network engine is initialized.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00261">261</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+<div class="fragment"><pre>00261 { <span class="keywordflow">return</span> CSock::_Initialized; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocke3" doxytag="NLNET::CSock::initNetwork" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CSock::initNetwork </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Initialize the network engine, if it is not already done.
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2109_2" doxytag="NLNET::CSock::localAddr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02665.html">CInetAddress</a>&amp; NLNET::CSock::localAddr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns a const reference on the local address.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00235">235</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+References <a class="el" href="a06405.html#l00284">_LocalAddr</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00353">NLNET::CLoginServer::init()</a>, <a class="el" href="a06642.html#l00066">NLNET::CUdpSimSock::localAddr()</a>, and <a class="el" href="a05513.html#l00104">NLNET::CListenTask::localAddr()</a>.
+<p>
+<div class="fragment"><pre>00235 { <span class="keywordflow">return</span> <a class="code" href="a02444.html#NLNET_1_1CUdpSockp3">_LocalAddr</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2103_2" doxytag="NLNET::CSock::nonBlockingMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLNET::CSock::nonBlockingMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the nonblocking mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00166">166</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+References <a class="el" href="a06405.html#l00293">_NonBlocking</a>.
+<p>
+<div class="fragment"><pre>00166 { <span class="keywordflow">return</span> <a class="code" href="a02444.html#NLNET_1_1CUdpSockp5">_NonBlocking</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CTcpSockz2105_1" doxytag="NLNET::CSock::receive" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3">CSock::TSockResult</a> NLNET::CSock::receive </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>len</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>throw_exception</em> = true</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>
+Receive a partial or an entire block of data, depending on nonblocking mode.<p>
+In blocking mode: the method waits until 'len' bytes have been received.<p>
+In nonblocking mode: the method reads the bytes that have already been received only, and resets 'len' to the number of bytes read. The actual length may be smaller than the demanded length. In no data is available, the return value is <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw4">CSock::WouldBlock</a>. If <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2105_0">dataAvailable()</a> returns true, you are sure that <a class="el" href="a02444.html#NLNET_1_1CTcpSockz2105_1">receive()</a> will not return <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw4">CSock::WouldBlock</a>.<p>
+In case of graceful disconnection:<ul>
+<li><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_0">connected()</a> become false</li><li>the return value is <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw0">CSock::ConnectionClosed</a> or an <a class="el" href="a03811.html">ESocketConnectionClosed</a> exception is thrown.</li></ul>
+<p>
+In case of failure (e.g. connection reset by peer) :<ul>
+<li>the return value is <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw1">CSock::Error</a> or an <a class="el" href="a03810.html">ESocket</a> exception is thrown. You may want to close the connection manually.</li></ul>
+
+<p>
+Reimplemented in <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2115_0">NLNET::CUdpSock</a>.
+<p>
+Referenced by <a class="el" href="a05514.html#l00386">NLNET::CNonBlockingBufSock::receivePart()</a>, and <a class="el" href="a05670.html#l00086">NLNET::sendEMailCommand()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocke4" doxytag="NLNET::CSock::releaseNetwork" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CSock::releaseNetwork </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Releases the network engine.
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2109_3" doxytag="NLNET::CSock::remoteAddr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02665.html">CInetAddress</a>&amp; NLNET::CSock::remoteAddr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the address of the remote host.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00238">238</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+References <a class="el" href="a06405.html#l00287">_RemoteAddr</a>.
+<p>
+Referenced by <a class="el" href="a05513.html#l00241">NLNET::CBufServer::hostAddress()</a>, <a class="el" href="a05514.html#l00386">NLNET::CNonBlockingBufSock::receivePart()</a>, <a class="el" href="a05507.html#l00169">NLNET::CBufClient::remoteAddress()</a>, and <a class="el" href="a05670.html#l00086">NLNET::sendEMailCommand()</a>.
+<p>
+<div class="fragment"><pre>00238 { <span class="keywordflow">return</span> <a class="code" href="a02444.html#NLNET_1_1CUdpSockp6">_RemoteAddr</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2107_0" doxytag="NLNET::CSock::send" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3">CSock::TSockResult</a> NLNET::CSock::send </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>len</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>throw_exception</em> = true</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>
+Sends a message.<p>
+In blocking mode: the method waits until 'len' bytes have been sent.<p>
+In nonblocking mode : the method resets len to the actual number of bytes sent. Even if less bytes than expected have been sent, it returns <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw2">CSock::Ok</a>. The caller is expected to test the actual len to check if the remaining data must be resent.<p>
+<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw2">CSock::Ok</a> or <a class="el" href="a02444.html#NLNET_1_1CUdpSockw3NLNET_1_1CUdpSockw1">CSock::Error</a> (in case of failure). When throw_exception is true, the method throws an <a class="el" href="a03810.html">ESocket</a> exception in case of failure. </dd></dl>
+
+<p>
+Referenced by <a class="el" href="a05514.html#l00137">NLNET::CBufSock::flush()</a>, <a class="el" href="a05670.html#l00086">NLNET::sendEMailCommand()</a>, and <a class="el" href="a06641.html#l00107">NLNET::CUdpSimSock::sendUDPNow()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockb1" doxytag="NLNET::CSock::setLocalAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CSock::setLocalAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets the local address.
+<p>
+
+<p>
+Referenced by <a class="el" href="a06643.html#l00074">NLNET::CUdpSock::bind()</a>, and <a class="el" href="a06643.html#l00115">NLNET::CUdpSock::sendTo()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2103_3" doxytag="NLNET::CSock::setNonBlockingMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CSock::setNonBlockingMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bm</em> </td>
+ <td class="md" valign="top">&nbsp;)&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>
+Sets the socket in nonblocking mode. Call this method *after* <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_1">connect()</a>, otherwise you will get an "would block" error (10035 on Windows). In nonblocking mode, use received() and sent() instead of <a class="el" href="a02444.html#NLNET_1_1CTcpSockz2105_1">receive()</a> and <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2107_0">send()</a>
+<p>
+Referenced by <a class="el" href="a05515.html#l00286">NLNET::CNonBlockingBufSock::setNonBlocking()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocka3" doxytag="NLNET::CSock::setSendBufferSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CSock::setSendBufferSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>size</em> </td>
+ <td class="md" valign="top">&nbsp;)&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>
+Sets the send buffer size.
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocka4" doxytag="NLNET::CSock::setTimeOutValue" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CSock::setTimeOutValue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">long&nbsp;</td>
+ <td class="mdname" nowrap> <em>sec</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>long&nbsp;</td>
+ <td class="mdname" nowrap> <em>ms</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Change the time out value used in getDataAvailable(), which is 0 by default.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00143">143</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+References <a class="el" href="a06405.html#l00309">_TimeoutMs</a>, and <a class="el" href="a06405.html#l00306">_TimeoutS</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00437">NLNET::CClientReceiveTask::run()</a>.
+<p>
+<div class="fragment"><pre>00144 {
+00145 <a class="code" href="a02444.html#NLNET_1_1CUdpSockp9">_TimeoutS</a> = sec;
+00146 <a class="code" href="a02444.html#NLNET_1_1CUdpSockp8">_TimeoutMs</a> = ms;
+00147 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2109_4" doxytag="NLNET::CSock::timeOutValue" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLNET::CSock::timeOutValue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the time out value in millisecond.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00244">244</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+References <a class="el" href="a06405.html#l00309">_TimeoutMs</a>, <a class="el" href="a06405.html#l00306">_TimeoutS</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00244 { <span class="keywordflow">return</span> <a class="code" href="a02444.html#NLNET_1_1CUdpSockp9">_TimeoutS</a>*1000 + <a class="code" href="a02444.html#NLNET_1_1CUdpSockp8">_TimeoutMs</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLNET_1_1CUdpSockp0" doxytag="NLNET::CSock::_BytesReceived" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a13">uint64</a> <a class="el" href="a02444.html#NLNET_1_1CUdpSockp0">NLNET::CSock::_BytesReceived</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Number of bytes received on this socket.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00300">300</a> of file <a class="el" href="a06405.html">sock.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp1" doxytag="NLNET::CSock::_BytesSent" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a13">uint64</a> <a class="el" href="a02444.html#NLNET_1_1CUdpSockp1">NLNET::CSock::_BytesSent</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Number of bytes sent on this socket.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00303">303</a> of file <a class="el" href="a06405.html">sock.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp2" doxytag="NLNET::CSock::_Connected" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> volatile bool <a class="el" href="a02444.html#NLNET_1_1CUdpSockp2">NLNET::CSock::_Connected</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+True after calling <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_1">connect()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00297">297</a> of file <a class="el" href="a06405.html">sock.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CSockv0" doxytag="NLNET::CSock::_Initialized" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02444.html#NLNET_1_1CSockv0">NLNET::CSock::_Initialized</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+True if the network library has been initialized.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00314">314</a> of file <a class="el" href="a06405.html">sock.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp3" doxytag="NLNET::CSock::_LocalAddr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02665.html">CInetAddress</a> <a class="el" href="a02444.html#NLNET_1_1CUdpSockp3">NLNET::CSock::_LocalAddr</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Address of local host (valid if connected).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00284">284</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+Referenced by <a class="el" href="a06405.html#l00235">localAddr()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp4" doxytag="NLNET::CSock::_Logging" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02444.html#NLNET_1_1CUdpSockp4">NLNET::CSock::_Logging</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+If false, do not log any information.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00290">290</a> of file <a class="el" href="a06405.html">sock.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CSockr0" doxytag="NLNET::CSock::_MaxReceiveTime" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02444.html#NLNET_1_1CSockr0">NLNET::CSock::_MaxReceiveTime</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00317">317</a> of file <a class="el" href="a06405.html">sock.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CSockr1" doxytag="NLNET::CSock::_MaxSendTime" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02444.html#NLNET_1_1CSockr1">NLNET::CSock::_MaxSendTime</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00318">318</a> of file <a class="el" href="a06405.html">sock.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp5" doxytag="NLNET::CSock::_NonBlocking" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02444.html#NLNET_1_1CUdpSockp5">NLNET::CSock::_NonBlocking</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+If true, the socket is in nonblocking mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00293">293</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+Referenced by <a class="el" href="a06405.html#l00166">nonBlockingMode()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp6" doxytag="NLNET::CSock::_RemoteAddr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02665.html">CInetAddress</a> <a class="el" href="a02444.html#NLNET_1_1CUdpSockp6">NLNET::CSock::_RemoteAddr</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Address of the remote host (valid if connected).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00287">287</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+Referenced by <a class="el" href="a06405.html#l00238">remoteAddr()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp7" doxytag="NLNET::CSock::_Sock" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> SOCKET <a class="el" href="a02444.html#NLNET_1_1CUdpSockp7">NLNET::CSock::_Sock</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Socket descriptor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00281">281</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+Referenced by <a class="el" href="a06405.html#l00241">descriptor()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp8" doxytag="NLNET::CSock::_TimeoutMs" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long <a class="el" href="a02444.html#NLNET_1_1CUdpSockp8">NLNET::CSock::_TimeoutMs</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Secondary time out value (ms) for select in <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2105_0">dataAvailable()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00309">309</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+Referenced by <a class="el" href="a06405.html#l00143">setTimeOutValue()</a>, and <a class="el" href="a06405.html#l00244">timeOutValue()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp9" doxytag="NLNET::CSock::_TimeoutS" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long <a class="el" href="a02444.html#NLNET_1_1CUdpSockp9">NLNET::CSock::_TimeoutS</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Main time out value (sec) for select in <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2105_0">dataAvailable()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06405.html#l00306">306</a> of file <a class="el" href="a06405.html">sock.h</a>.
+<p>
+Referenced by <a class="el" href="a06405.html#l00143">setTimeOutValue()</a>, and <a class="el" href="a06405.html#l00244">timeOutValue()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="a06405.html">sock.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:04:14 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>