aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03628.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a03628.html')
-rw-r--r--docs/doxygen/nel/a03628.html1831
1 files changed, 1831 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03628.html b/docs/doxygen/nel/a03628.html
new file mode 100644
index 00000000..55c13a0c
--- /dev/null
+++ b/docs/doxygen/nel/a03628.html
@@ -0,0 +1,1831 @@
+<!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::CUdpSock 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::CUdpSock Class Reference</h1><code>#include &lt;<a class="el" href="a06644.html">udp_sock.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLNET::CUdpSock:
+<p><center><img src="a03628.png" usemap="#NLNET::CUdpSock_map" border="0" alt=""></center>
+<map name="NLNET::CUdpSock_map">
+<area href="a02444.html" alt="NLNET::CSock" shape="rect" coords="0,0,117,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<a class="el" href="a03628.html">CUdpSock</a>: Unreliable datagram socket via UDP. See base class <a class="el" href="a02444.html">CSock</a>. <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="a06644.html#l00042">42</a> of file <a class="el" href="a06644.html">udp_sock.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></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"><div class="groupHeader">Properties</div></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_1CUdpSockz2109_0">connected</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns if the socket is connected (mutexed). <a href="#NLNET_1_1CUdpSockz2109_0"></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_1CUdpSockz2109_1">descriptor</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the socket descriptor. <a href="#NLNET_1_1CUdpSockz2109_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_2">localAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a const reference on the local address. <a href="#NLNET_1_1CUdpSockz2109_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_3">remoteAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the address of the remote host. <a href="#NLNET_1_1CUdpSockz2109_3"></a><br><br></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_1CUdpSockz2109_4">timeOutValue</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the time out value in millisecond. <a href="#NLNET_1_1CUdpSockz2109_4"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Socket setup</div></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 colspan="2"><div class="groupHeader">Sending data</div></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_1CUdpSockz2107_0">send</a> (const <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"><div class="groupHeader">Socket setup</div></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>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 colspan="2"><div class="groupHeader">Properties</div></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_1CUdpSockz2109_0">connected</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns if the socket is connected (mutexed). <a href="#NLNET_1_1CUdpSockz2109_0"></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_1CUdpSockz2109_1">descriptor</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the socket descriptor. <a href="#NLNET_1_1CUdpSockz2109_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_2">localAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a const reference on the local address. <a href="#NLNET_1_1CUdpSockz2109_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_3">remoteAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the address of the remote host. <a href="#NLNET_1_1CUdpSockz2109_3"></a><br><br></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_1CUdpSockz2109_4">timeOutValue</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the time out value in millisecond. <a href="#NLNET_1_1CUdpSockz2109_4"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Sending data</div></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_1CUdpSockz2107_0">send</a> (const <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"><div class="groupHeader">Properties</div></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_1CUdpSockz2109_0">connected</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns if the socket is connected (mutexed). <a href="#NLNET_1_1CUdpSockz2109_0"></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_1CUdpSockz2109_1">descriptor</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the socket descriptor. <a href="#NLNET_1_1CUdpSockz2109_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_2">localAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a const reference on the local address. <a href="#NLNET_1_1CUdpSockz2109_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_3">remoteAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the address of the remote host. <a href="#NLNET_1_1CUdpSockz2109_3"></a><br><br></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_1CUdpSockz2109_4">timeOutValue</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the time out value in millisecond. <a href="#NLNET_1_1CUdpSockz2109_4"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Sending data</div></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_1CUdpSockz2107_0">send</a> (const <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"><div class="groupHeader">Socket setup</div></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>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 colspan="2"><div class="groupHeader">Properties</div></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_1CUdpSockz2109_0">connected</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns if the socket is connected (mutexed). <a href="#NLNET_1_1CUdpSockz2109_0"></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_1CUdpSockz2109_1">descriptor</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the socket descriptor. <a href="#NLNET_1_1CUdpSockz2109_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_2">localAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a const reference on the local address. <a href="#NLNET_1_1CUdpSockz2109_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_3">remoteAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the address of the remote host. <a href="#NLNET_1_1CUdpSockz2109_3"></a><br><br></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_1CUdpSockz2109_4">timeOutValue</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the time out value in millisecond. <a href="#NLNET_1_1CUdpSockz2109_4"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Sending data</div></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_1CUdpSockz2107_0">send</a> (const <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"><div class="groupHeader">Socket setup</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03628.html#NLNET_1_1CUdpSockz2113_0">bind</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="mdescLeft">&nbsp;</td><td class="mdescRight">Same as <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2113_1">bind(uint16)</a> but binds on a specified address/port (useful when the host has several addresses). <a href="#NLNET_1_1CUdpSockz2113_0"></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="a03628.html#NLNET_1_1CUdpSockz2113_1">bind</a> (<a class="el" href="a04558.html#a9">uint16</a> port)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03628.html#NLNET_1_1CUdpSockz2113_2">CUdpSock</a> (bool logging=true)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Socket setup</div></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 colspan="2"><div class="groupHeader">Properties</div></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_1CUdpSockz2109_0">connected</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns if the socket is connected (mutexed). <a href="#NLNET_1_1CUdpSockz2109_0"></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_1CUdpSockz2109_1">descriptor</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the socket descriptor. <a href="#NLNET_1_1CUdpSockz2109_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_2">localAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a const reference on the local address. <a href="#NLNET_1_1CUdpSockz2109_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_3">remoteAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the address of the remote host. <a href="#NLNET_1_1CUdpSockz2109_3"></a><br><br></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_1CUdpSockz2109_4">timeOutValue</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the time out value in millisecond. <a href="#NLNET_1_1CUdpSockz2109_4"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Receiving data</div></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 colspan="2"><div class="groupHeader">Receiving data</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03628.html#NLNET_1_1CUdpSockz2115_0">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 class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03628.html#NLNET_1_1CUdpSockz2115_1">receivedFrom</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#a15">uint</a> &amp;<a class="el" href="a04223.html#a571">len</a>, <a class="el" href="a02665.html">CInetAddress</a> &amp;<a class="el" href="a04223.html#a657">addr</a>, bool throw_exception=true)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Sending data</div></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_1CUdpSockz2107_0">send</a> (const <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"><div class="groupHeader">Sending data</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03628.html#NLNET_1_1CUdpSockz2117_0">sendTo</a> (const <a class="el" href="a04558.html#a7">uint8</a> *<a class="el" href="a04223.html#a589">buffer</a>, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</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="mdescLeft">&nbsp;</td><td class="mdescRight">Sends data to the specified host (unreliable sockets only). <a href="#NLNET_1_1CUdpSockz2117_0"></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>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>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03628.html#NLNET_1_1CUdpSockr0">_Bound</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True after calling <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2113_1">bind()</a> or <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2117_0">sendTo()</a>. <a href="#NLNET_1_1CUdpSockr0"></a><br><br></td></tr>
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NLNET_1_1CUdpSockw3" doxytag="NLNET::CUdpSock::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><code> [inherited]</code>
+ </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_1CUdpSockz2113_2" doxytag="NLNET::CUdpSock::CUdpSock" ></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::CUdpSock::CUdpSock </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></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>
+
+<p>
+Definition at line <a class="el" href="a06643.html#l00062">62</a> of file <a class="el" href="a06643.html">udp_sock.cpp</a>.
+<p>
+References <a class="el" href="a02444.html#NLNET_1_1CUdpSockb0">NLNET::CSock::createSocket()</a>.
+<p>
+<div class="fragment"><pre>00062 :
+00063 <a class="code" href="a02444.html#NLNET_1_1CSockb2">CSock</a>( logging ),
+00064 <a class="code" href="a03628.html#NLNET_1_1CUdpSockr0">_Bound</a>( <span class="keyword">false</span> )
+00065 {
+00066 <span class="comment">// Socket creation</span>
+00067 <a class="code" href="a02444.html#NLNET_1_1CUdpSockb0">createSocket</a>( SOCK_DGRAM, IPPROTO_UDP );
+00068 }
+
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLNET_1_1CUdpSockz2113_0" doxytag="NLNET::CUdpSock::bind" ></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::CUdpSock::bind </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></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Same as <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2113_1">bind(uint16)</a> but binds on a specified address/port (useful when the host has several addresses).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06643.html#l00086">86</a> of file <a class="el" href="a06643.html">udp_sock.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a05810.html#l00385">NLNET::CInetAddress::asString()</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05810.html#l00306">NLNET::CInetAddress::sockAddr()</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+<div class="fragment"><pre>00087 {
+00088 <span class="preprocessor">#ifndef NL_OS_WINDOWS</span>
+00089 <span class="preprocessor"></span> <span class="comment">// Set Reuse Address On (does not work on Win98 and is useless on Win2000)</span>
+00090 <span class="keywordtype">int</span> <a class="code" href="a04223.html#a658">value</a> = <span class="keyword">true</span>;
+00091 <span class="keywordflow">if</span> ( setsockopt( _Sock, SOL_SOCKET, SO_REUSEADDR, &amp;value, <span class="keyword">sizeof</span>(value) ) == SOCKET_ERROR )
+00092 {
+00093 <span class="keywordflow">throw</span> ESocket( <span class="stringliteral">"ReuseAddr failed"</span> );
+00094 }
+00095 <span class="preprocessor">#endif</span>
+00096 <span class="preprocessor"></span>
+00097 <a class="code" href="a02444.html#NLNET_1_1CUdpSockp3">_LocalAddr</a> = <a class="code" href="a04223.html#a657">addr</a>;
+00098
+00099 <span class="comment">// Bind the socket</span>
+00100 <span class="keywordflow">if</span> ( ::bind( <a class="code" href="a02444.html#NLNET_1_1CUdpSockp7">_Sock</a>, (sockaddr*)(<a class="code" href="a02444.html#NLNET_1_1CUdpSockp3">_LocalAddr</a>.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa19">sockAddr</a>()), <span class="keyword">sizeof</span>(sockaddr) ) == SOCKET_ERROR )
+00101 {
+00102 <span class="keywordflow">throw</span> ESocket( <span class="stringliteral">"Bind failed"</span> );
+00103 }
+00104 <a class="code" href="a03628.html#NLNET_1_1CUdpSockr0">_Bound</a> = <span class="keyword">true</span>;
+00105 <span class="keywordflow">if</span> ( <a class="code" href="a02444.html#NLNET_1_1CUdpSockp4">_Logging</a> )
+00106 {
+00107 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"LNETL0: Socket %d bound at %s"</span>, _Sock, <a class="code" href="a02444.html#NLNET_1_1CUdpSockp3">_LocalAddr</a>.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa1">asString</a>().c_str() );
+00108 }
+00109 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2113_1" doxytag="NLNET::CUdpSock::bind" ></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::CUdpSock::bind </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>port</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>
+Binds the socket to the specified port. Call <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2113_1">bind()</a> for an unreliable socket if the host acts as a server and expects to receive messages. If the host acts as a client, call directly <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2117_0">sendTo()</a>, in this case you need not bind the socket.
+<p>
+Definition at line <a class="el" href="a06643.html#l00074">74</a> of file <a class="el" href="a06643.html">udp_sock.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockb1">NLNET::CSock::setLocalAddress()</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00075 {
+00076 <a class="code" href="a02665.html">CInetAddress</a> <a class="code" href="a04223.html#a657">addr</a>; <span class="comment">// any IP address</span>
+00077 <a class="code" href="a04223.html#a657">addr</a>.setPort( port );
+00078 <a class="code" href="a03628.html#NLNET_1_1CUdpSockz2113_1">bind</a>( addr );
+00079 <a class="code" href="a02444.html#NLNET_1_1CUdpSockb1">setLocalAddress</a>(); <span class="comment">// will not set the address if the host is multihomed, use bind(CInetAddress) instead</span>
+00080 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocka0" doxytag="NLNET::CUdpSock::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, inherited]</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::CUdpSock::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, inherited]</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::CUdpSock::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, inherited]</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::CUdpSock::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, inherited]</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::CUdpSock::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><code> [inherited]</code></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::CUdpSock::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, inherited]</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">CUdpSock()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2105_0" doxytag="NLNET::CUdpSock::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><code> [inherited]</code></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::CUdpSock::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, inherited]</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">NLNET::CSock::_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::CUdpSock::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, inherited]</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::CUdpSock::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, inherited]</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::CUdpSock::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><code> [inherited]</code></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::CUdpSock::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, inherited]</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::CUdpSock::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, inherited]</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::CUdpSock::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, inherited]</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">NLNET::CSock::_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::CUdpSock::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, inherited]</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">NLNET::CSock::_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_1CUdpSockz2115_0" doxytag="NLNET::CUdpSock::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"> bool NLNET::CUdpSock::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>
+Receives data from the peer. (blocking function) The socket must be pseudo-connected.
+<p>
+Reimplemented from <a class="el" href="a02444.html#NLNET_1_1CTcpSockz2105_1">NLNET::CSock</a>.
+<p>
+Definition at line <a class="el" href="a06643.html#l00156">156</a> of file <a class="el" href="a06643.html">udp_sock.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00385">NLNET::CInetAddress::asString()</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06641.html#l00269">NLNET::CUdpSimSock::receive()</a>.
+<p>
+<div class="fragment"><pre>00157 {
+00158 <a class="code" href="a04199.html#a6">nlassert</a>( _Connected &amp;&amp; (buffer!=NULL) );
+00159
+00160 <span class="comment">// Receive incoming message</span>
+00161 <a class="code" href="a04223.html#a571">len</a> = ::recv( <a class="code" href="a02444.html#NLNET_1_1CUdpSockp7">_Sock</a>, (<span class="keywordtype">char</span>*)<a class="code" href="a04223.html#a589">buffer</a>, <a class="code" href="a04223.html#a571">len</a> , 0 );
+00162
+00163 <span class="comment">// Check for errors (after setting the address)</span>
+00164 <span class="keywordflow">if</span> ( ((<span class="keywordtype">int</span>)<a class="code" href="a04223.html#a571">len</a>) == SOCKET_ERROR )
+00165 {
+00166 <span class="keywordflow">if</span> ( throw_exception )
+00167 <span class="keywordflow">throw</span> ESocket( <span class="stringliteral">"Cannot receive data"</span> );
+00168 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00169 }
+00170
+00171 <a class="code" href="a02444.html#NLNET_1_1CUdpSockp0">_BytesReceived</a> += <a class="code" href="a04223.html#a571">len</a>;
+00172 <span class="keywordflow">if</span> ( <a class="code" href="a02444.html#NLNET_1_1CUdpSockp4">_Logging</a> )
+00173 {
+00174 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"LNETL0: Socket %d received %d bytes from peer %s"</span>, _Sock, len, <a class="code" href="a02444.html#NLNET_1_1CUdpSockp6">_RemoteAddr</a>.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa1">asString</a>().c_str() );
+00175 }
+00176 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00177 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2115_1" doxytag="NLNET::CUdpSock::receivedFrom" ></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::CUdpSock::receivedFrom </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#a15">uint</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><a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>addr</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>
+Receives data and say who the sender is. (blocking function) The socket must have been bound before, by calling either <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2113_1">bind()</a> or <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2117_0">sendTo()</a>. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>buffer</em>&nbsp;</td><td>[in] Address of buffer </td></tr>
+ <tr><td valign=top><em>len</em>&nbsp;</td><td>[in/out] Requested length of buffer, and actual number of bytes received </td></tr>
+ <tr><td valign=top><em>addr</em>&nbsp;</td><td>[out] Address of sender</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06643.html#l00183">183</a> of file <a class="el" href="a06643.html">udp_sock.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06641.html#l00238">NLNET::CUdpSimSock::dataAvailable()</a>.
+<p>
+<div class="fragment"><pre>00184 {
+00185 <span class="comment">// Receive incoming message</span>
+00186 sockaddr_in saddr;
+00187 socklen_t saddrlen = <span class="keyword">sizeof</span>(saddr);
+00188
+00189 <a class="code" href="a04223.html#a571">len</a> = ::recvfrom( <a class="code" href="a02444.html#NLNET_1_1CUdpSockp7">_Sock</a>, (<span class="keywordtype">char</span>*)<a class="code" href="a04223.html#a589">buffer</a>, <a class="code" href="a04223.html#a571">len</a> , 0, (sockaddr*)&amp;saddr, &amp;saddrlen );
+00190
+00191 <span class="comment">// If an error occurs, the saddr is not valid</span>
+00192 <span class="comment">// When the remote socket is closed, get sender's address to know who is quitting</span>
+00193 <a class="code" href="a04223.html#a657">addr</a>.setSockAddr( &amp;saddr );
+00194
+00195 <span class="comment">// Check for errors (after setting the address)</span>
+00196 <span class="keywordflow">if</span> ( ((<span class="keywordtype">int</span>)<a class="code" href="a04223.html#a571">len</a>) == SOCKET_ERROR )
+00197 {
+00198 <span class="keywordflow">if</span> ( throw_exception )
+00199 <span class="keywordflow">throw</span> ESocket( <span class="stringliteral">"Cannot receive data"</span> );
+00200 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00201 }
+00202
+00203 <a class="code" href="a02444.html#NLNET_1_1CUdpSockp0">_BytesReceived</a> += <a class="code" href="a04223.html#a571">len</a>;
+00204 <span class="keywordflow">if</span> ( <a class="code" href="a02444.html#NLNET_1_1CUdpSockp4">_Logging</a> )
+00205 {
+00206 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"LNETL0: Socket %d received %d bytes from %s"</span>, _Sock, len, <a class="code" href="a04223.html#a657">addr</a>.asString().c_str() );
+00207 }
+00208 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00209 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSocke4" doxytag="NLNET::CUdpSock::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, inherited]</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::CUdpSock::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, inherited]</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">NLNET::CSock::_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::CUdpSock::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"><code> [inherited]</code></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_1CUdpSockz2117_0" doxytag="NLNET::CUdpSock::sendTo" ></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::CUdpSock::sendTo </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#a15">uint</a>&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>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>addr</em></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 data to the specified host (unreliable sockets only).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06643.html#l00115">115</a> of file <a class="el" href="a06643.html">udp_sock.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockb1">NLNET::CSock::setLocalAddress()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06641.html#l00107">NLNET::CUdpSimSock::sendUDPNow()</a>.
+<p>
+<div class="fragment"><pre>00116 {
+00117
+00118 <span class="comment">// Send</span>
+00119 <span class="keywordflow">if</span> ( ::sendto( <a class="code" href="a02444.html#NLNET_1_1CUdpSockp7">_Sock</a>, (<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="a04223.html#a589">buffer</a>, <a class="code" href="a04223.html#a571">len</a>, 0, (sockaddr*)(<a class="code" href="a04223.html#a657">addr</a>.sockAddr()), <span class="keyword">sizeof</span>(sockaddr) ) != (<a class="code" href="a04558.html#a10">sint32</a>)<a class="code" href="a04223.html#a571">len</a> )
+00120 {
+00121 <span class="keywordflow">throw</span> ESocket( <span class="stringliteral">"Unable to send datagram"</span> );
+00122 }
+00123 <a class="code" href="a02444.html#NLNET_1_1CUdpSockp1">_BytesSent</a> += <a class="code" href="a04223.html#a571">len</a>;
+00124
+00125 <span class="keywordflow">if</span> ( <a class="code" href="a02444.html#NLNET_1_1CUdpSockp4">_Logging</a> )
+00126 {
+00127 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"LNETL0: Socket %d sent %d bytes to %s"</span>, _Sock, len, <a class="code" href="a04223.html#a657">addr</a>.asString().c_str() );
+00128 }
+00129
+00130 <span class="comment">// If socket is unbound, retrieve local address</span>
+00131 <span class="keywordflow">if</span> ( ! <a class="code" href="a03628.html#NLNET_1_1CUdpSockr0">_Bound</a> )
+00132 {
+00133 <a class="code" href="a02444.html#NLNET_1_1CUdpSockb1">setLocalAddress</a>();
+00134 <a class="code" href="a03628.html#NLNET_1_1CUdpSockr0">_Bound</a> = <span class="keyword">true</span>;
+00135 }
+00136
+00137 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00138 <span class="preprocessor"></span> <span class="comment">// temporary by ace to know size of SO_MAX_MSG_SIZE</span>
+00139 <span class="keyword">static</span> <span class="keywordtype">bool</span> first = <span class="keyword">true</span>;
+00140 <span class="keywordflow">if</span> (first)
+00141 {
+00142 <a class="code" href="a04558.html#a15">uint</a> MMS, SB;
+00143 <span class="keywordtype">int</span> <a class="code" href="a04223.html#a587">size</a> = <span class="keyword">sizeof</span> (MMS);
+00144 getsockopt (_Sock, SOL_SOCKET, SO_SNDBUF, (<span class="keywordtype">char</span> *)&amp;SB, &amp;size);
+00145 getsockopt (_Sock, SOL_SOCKET, SO_MAX_MSG_SIZE, (<span class="keywordtype">char</span> *)&amp;MMS, &amp;size);
+00146 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"LNETL0: The udp SO_MAX_MSG_SIZE=%u, SO_SNDBUF=%u"</span>, MMS, SB);
+00147 first = <span class="keyword">false</span>;
+00148 }
+00149 <span class="preprocessor">#endif</span>
+00150 <span class="preprocessor"></span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockb1" doxytag="NLNET::CUdpSock::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, inherited]</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">bind()</a>, and <a class="el" href="a06643.html#l00115">sendTo()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockz2103_3" doxytag="NLNET::CUdpSock::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><code> [inherited]</code></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::CUdpSock::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><code> [inherited]</code></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::CUdpSock::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, inherited]</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">NLNET::CSock::_TimeoutMs</a>, and <a class="el" href="a06405.html#l00306">NLNET::CSock::_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::CUdpSock::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, inherited]</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">NLNET::CSock::_TimeoutMs</a>, <a class="el" href="a06405.html#l00306">NLNET::CSock::_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_1CUdpSockr0" doxytag="NLNET::CUdpSock::_Bound" ></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="a03628.html#NLNET_1_1CUdpSockr0">NLNET::CUdpSock::_Bound</a><code> [private]</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="a03628.html#NLNET_1_1CUdpSockz2113_1">bind()</a> or <a class="el" href="a03628.html#NLNET_1_1CUdpSockz2117_0">sendTo()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06644.html#l00095">95</a> of file <a class="el" href="a06644.html">udp_sock.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp0" doxytag="NLNET::CUdpSock::_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, inherited]</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::CUdpSock::_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, inherited]</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::CUdpSock::_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, inherited]</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_1CUdpSockp3" doxytag="NLNET::CUdpSock::_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, inherited]</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">NLNET::CSock::localAddr()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp4" doxytag="NLNET::CUdpSock::_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, inherited]</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_1CUdpSockp5" doxytag="NLNET::CUdpSock::_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, inherited]</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">NLNET::CSock::nonBlockingMode()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp6" doxytag="NLNET::CUdpSock::_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, inherited]</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">NLNET::CSock::remoteAddr()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp7" doxytag="NLNET::CUdpSock::_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, inherited]</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">NLNET::CSock::descriptor()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp8" doxytag="NLNET::CUdpSock::_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, inherited]</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">NLNET::CSock::setTimeOutValue()</a>, and <a class="el" href="a06405.html#l00244">NLNET::CSock::timeOutValue()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CUdpSockp9" doxytag="NLNET::CUdpSock::_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, inherited]</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">NLNET::CSock::setTimeOutValue()</a>, and <a class="el" href="a06405.html#l00244">NLNET::CSock::timeOutValue()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06644.html">udp_sock.h</a><li><a class="el" href="a06643.html">udp_sock.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:06:02 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>