uvw/classuvw_1_1udp__handle.html
2023-05-22 11:13:58 +02:00

1580 lines
95 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::udp_handle Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1udp__handle.html">udp_handle</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classuvw_1_1udp__handle-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::udp_handle Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>The UDP handle.
<a href="classuvw_1_1udp__handle.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="udp_8h_source.html">udp.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::udp_handle:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1udp__handle__inherit__graph.png" border="0" usemap="#auvw_1_1udp__handle_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1udp__handle_inherit__map" id="auvw_1_1udp__handle_inherit__map">
<area shape="rect" title="The UDP handle." alt="" coords="92,255,209,280"/>
<area shape="rect" href="classuvw_1_1handle.html" title=" " alt="" coords="65,152,236,207"/>
<area shape="rect" href="classuvw_1_1resource.html" title="Common class for almost all the resources available in uvw." alt="" coords="67,79,234,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="5,5,133,31"/>
<area shape="rect" href="classuvw_1_1emitter.html" title=" " alt="" coords="158,5,309,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for uvw::udp_handle:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1udp__handle__coll__graph.png" border="0" usemap="#auvw_1_1udp__handle_coll__map" alt="Collaboration graph"/></div>
<map name="auvw_1_1udp__handle_coll__map" id="auvw_1_1udp__handle_coll__map">
<area shape="rect" title="The UDP handle." alt="" coords="92,255,209,280"/>
<area shape="rect" href="classuvw_1_1handle.html" title=" " alt="" coords="65,152,236,207"/>
<area shape="rect" href="classuvw_1_1resource.html" title="Common class for almost all the resources available in uvw." alt="" coords="67,79,234,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="5,5,133,31"/>
<area shape="rect" href="classuvw_1_1emitter.html" title=" " alt="" coords="158,5,309,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8c9dab091d819fe3b90eee4ead6bedb8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a8c9dab091d819fe3b90eee4ead6bedb8">init</a> () final</td></tr>
<tr class="memdesc:a8c9dab091d819fe3b90eee4ead6bedb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the handle. The actual socket is created lazily. <br /></td></tr>
<tr class="separator:a8c9dab091d819fe3b90eee4ead6bedb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac58c30fc2b4372e62c15b76a33cfc6ac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#ac58c30fc2b4372e62c15b76a33cfc6ac">open</a> (<a class="el" href="namespaceuvw.html#aa64a7948231fbdec46df43be0c24f806">os_socket_handle</a> socket)</td></tr>
<tr class="memdesc:ac58c30fc2b4372e62c15b76a33cfc6ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens an existing file descriptor or SOCKET as a UDP handle. <br /></td></tr>
<tr class="separator:ac58c30fc2b4372e62c15b76a33cfc6ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad472e7bf741327c64a4230ea3dd4a3c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#aad472e7bf741327c64a4230ea3dd4a3c">connect</a> (const sockaddr &amp;addr)</td></tr>
<tr class="memdesc:aad472e7bf741327c64a4230ea3dd4a3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Associates the handle to a remote address and port (either IPv4 or IPv6). <br /></td></tr>
<tr class="separator:aad472e7bf741327c64a4230ea3dd4a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11df1fc6f341ea7cb8e89b1dd1611147"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a11df1fc6f341ea7cb8e89b1dd1611147">connect</a> (const std::string &amp;ip, unsigned int port)</td></tr>
<tr class="memdesc:a11df1fc6f341ea7cb8e89b1dd1611147"><td class="mdescLeft">&#160;</td><td class="mdescRight">Associates the handle to a remote address and port (either IPv4 or IPv6). <br /></td></tr>
<tr class="separator:a11df1fc6f341ea7cb8e89b1dd1611147"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a157c7c9f43a24b381b6995c0e9c8449a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a157c7c9f43a24b381b6995c0e9c8449a">connect</a> (<a class="el" href="structuvw_1_1socket__address.html">socket_address</a> addr)</td></tr>
<tr class="memdesc:a157c7c9f43a24b381b6995c0e9c8449a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Associates the handle to a remote address and port (either IPv4 or IPv6). <br /></td></tr>
<tr class="separator:a157c7c9f43a24b381b6995c0e9c8449a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cf1ce5b260081709167f3c21a7dfab8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a6cf1ce5b260081709167f3c21a7dfab8">disconnect</a> ()</td></tr>
<tr class="memdesc:a6cf1ce5b260081709167f3c21a7dfab8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects the handle. <br /></td></tr>
<tr class="separator:a6cf1ce5b260081709167f3c21a7dfab8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46e82bbfc074199fbc2142a7600a0b62"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a46e82bbfc074199fbc2142a7600a0b62">peer</a> () const noexcept</td></tr>
<tr class="memdesc:a46e82bbfc074199fbc2142a7600a0b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the remote address to which the handle is connected, if any. <br /></td></tr>
<tr class="separator:a46e82bbfc074199fbc2142a7600a0b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9079623fc6271bfa244c3c65efeeeb90"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a9079623fc6271bfa244c3c65efeeeb90">bind</a> (const sockaddr &amp;addr, udp_flags opts=udp_flags::_UVW_ENUM)</td></tr>
<tr class="memdesc:a9079623fc6271bfa244c3c65efeeeb90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Binds the UDP handle to an IP address and port. <br /></td></tr>
<tr class="separator:a9079623fc6271bfa244c3c65efeeeb90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76a116d936fc813bd0aa7eb1f7cb8c4b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a76a116d936fc813bd0aa7eb1f7cb8c4b">bind</a> (const std::string &amp;ip, unsigned int port, udp_flags opts=udp_flags::_UVW_ENUM)</td></tr>
<tr class="memdesc:a76a116d936fc813bd0aa7eb1f7cb8c4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Binds the UDP handle to an IP address and port. <br /></td></tr>
<tr class="separator:a76a116d936fc813bd0aa7eb1f7cb8c4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a214797308c5f2731200c024a93b42694"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a214797308c5f2731200c024a93b42694">bind</a> (<a class="el" href="structuvw_1_1socket__address.html">socket_address</a> addr, udp_flags opts=udp_flags::_UVW_ENUM)</td></tr>
<tr class="memdesc:a214797308c5f2731200c024a93b42694"><td class="mdescLeft">&#160;</td><td class="mdescRight">Binds the UDP handle to an IP address and port. <br /></td></tr>
<tr class="separator:a214797308c5f2731200c024a93b42694"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afee1107a373bb06e56187b9d10dbf0b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#afee1107a373bb06e56187b9d10dbf0b1">sock</a> () const noexcept</td></tr>
<tr class="memdesc:afee1107a373bb06e56187b9d10dbf0b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the local IP and port of the UDP handle. <br /></td></tr>
<tr class="separator:afee1107a373bb06e56187b9d10dbf0b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83d8fdd521cbc398bddb30ec1ed633f6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a83d8fdd521cbc398bddb30ec1ed633f6">multicast_membership</a> (const std::string &amp;multicast, const std::string &amp;iface, membership ms)</td></tr>
<tr class="memdesc:a83d8fdd521cbc398bddb30ec1ed633f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets membership for a multicast address. <br /></td></tr>
<tr class="separator:a83d8fdd521cbc398bddb30ec1ed633f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36459310de6b4ad096cf06aa465e0ed7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a36459310de6b4ad096cf06aa465e0ed7">multicast_loop</a> (bool enable=true)</td></tr>
<tr class="memdesc:a36459310de6b4ad096cf06aa465e0ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets IP multicast loop flag. <br /></td></tr>
<tr class="separator:a36459310de6b4ad096cf06aa465e0ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abff8416a0fa3f99f7d17623721da2887"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#abff8416a0fa3f99f7d17623721da2887">multicast_ttl</a> (int val)</td></tr>
<tr class="memdesc:abff8416a0fa3f99f7d17623721da2887"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the multicast ttl. <br /></td></tr>
<tr class="separator:abff8416a0fa3f99f7d17623721da2887"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab904140516703f03fa737ca3ce68c6e4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#ab904140516703f03fa737ca3ce68c6e4">multicast_interface</a> (const std::string &amp;iface)</td></tr>
<tr class="memdesc:ab904140516703f03fa737ca3ce68c6e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the multicast interface to send or receive data on. <br /></td></tr>
<tr class="separator:ab904140516703f03fa737ca3ce68c6e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12781b0139d6f5c820f80a12b3565f05"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a12781b0139d6f5c820f80a12b3565f05">broadcast</a> (bool enable=false)</td></tr>
<tr class="memdesc:a12781b0139d6f5c820f80a12b3565f05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets broadcast on or off. <br /></td></tr>
<tr class="separator:a12781b0139d6f5c820f80a12b3565f05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea4a8f758017c962d825a119eb0698fb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#aea4a8f758017c962d825a119eb0698fb">ttl</a> (int val)</td></tr>
<tr class="memdesc:aea4a8f758017c962d825a119eb0698fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the time to live. <br /></td></tr>
<tr class="separator:aea4a8f758017c962d825a119eb0698fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5998d3702b6abc21a82b6eb0848e48db"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a5998d3702b6abc21a82b6eb0848e48db">send</a> (const sockaddr &amp;addr, std::unique_ptr&lt; char[]&gt; <a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:a5998d3702b6abc21a82b6eb0848e48db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:a5998d3702b6abc21a82b6eb0848e48db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4d3dcd9437ee85db10bece0d0b7dabc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#ab4d3dcd9437ee85db10bece0d0b7dabc">send</a> (const std::string &amp;ip, unsigned int port, std::unique_ptr&lt; char[]&gt; <a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:ab4d3dcd9437ee85db10bece0d0b7dabc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:ab4d3dcd9437ee85db10bece0d0b7dabc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c90b4bc888be6473a51ba9c11ead992"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a6c90b4bc888be6473a51ba9c11ead992">send</a> (<a class="el" href="structuvw_1_1socket__address.html">socket_address</a> addr, std::unique_ptr&lt; char[]&gt; <a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:a6c90b4bc888be6473a51ba9c11ead992"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:a6c90b4bc888be6473a51ba9c11ead992"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7376e36e07395cf79d7d9a69fe4b624"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#af7376e36e07395cf79d7d9a69fe4b624">send</a> (const sockaddr &amp;addr, char *<a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:af7376e36e07395cf79d7d9a69fe4b624"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:af7376e36e07395cf79d7d9a69fe4b624"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad74d5f4dbc82b8eb6008c223127974a5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#ad74d5f4dbc82b8eb6008c223127974a5">send</a> (const std::string &amp;ip, unsigned int port, char *<a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:ad74d5f4dbc82b8eb6008c223127974a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:ad74d5f4dbc82b8eb6008c223127974a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab70adc221530dcc744cf4c43e94461ca"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#ab70adc221530dcc744cf4c43e94461ca">send</a> (<a class="el" href="structuvw_1_1socket__address.html">socket_address</a> addr, char *<a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:ab70adc221530dcc744cf4c43e94461ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:ab70adc221530dcc744cf4c43e94461ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab060fab01ac576afe3d332eb433a8f80"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#ab060fab01ac576afe3d332eb433a8f80">try_send</a> (const sockaddr &amp;addr, std::unique_ptr&lt; char[]&gt; <a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:ab060fab01ac576afe3d332eb433a8f80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:ab060fab01ac576afe3d332eb433a8f80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabeddd41e264d96a62577ff2ba4692d2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#aabeddd41e264d96a62577ff2ba4692d2">try_send</a> (const std::string &amp;ip, unsigned int port, std::unique_ptr&lt; char[]&gt; <a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:aabeddd41e264d96a62577ff2ba4692d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:aabeddd41e264d96a62577ff2ba4692d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba07556c17d643ab57dddf14f94d7287"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#aba07556c17d643ab57dddf14f94d7287">try_send</a> (<a class="el" href="structuvw_1_1socket__address.html">socket_address</a> addr, std::unique_ptr&lt; char[]&gt; <a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:aba07556c17d643ab57dddf14f94d7287"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:aba07556c17d643ab57dddf14f94d7287"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65d339c5aa2caef1bfa3bbaa53ebfdca"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a65d339c5aa2caef1bfa3bbaa53ebfdca">try_send</a> (const sockaddr &amp;addr, char *<a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:a65d339c5aa2caef1bfa3bbaa53ebfdca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:a65d339c5aa2caef1bfa3bbaa53ebfdca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaebe25374ee76d11d51e95c384220cba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#aaebe25374ee76d11d51e95c384220cba">try_send</a> (const std::string &amp;ip, unsigned int port, char *<a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:aaebe25374ee76d11d51e95c384220cba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:aaebe25374ee76d11d51e95c384220cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c72fcac682be0f8907778f5d72b565e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a5c72fcac682be0f8907778f5d72b565e">try_send</a> (<a class="el" href="structuvw_1_1socket__address.html">socket_address</a> addr, char *<a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>, unsigned int len)</td></tr>
<tr class="memdesc:a5c72fcac682be0f8907778f5d72b565e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the UDP socket. <br /></td></tr>
<tr class="separator:a5c72fcac682be0f8907778f5d72b565e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3ebb4dea4d915113ead48a35753d82b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#ac3ebb4dea4d915113ead48a35753d82b">recv</a> ()</td></tr>
<tr class="memdesc:ac3ebb4dea4d915113ead48a35753d82b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares for receiving data. <br /></td></tr>
<tr class="separator:ac3ebb4dea4d915113ead48a35753d82b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a941148999cfd66f7036ec8bbfd2ce896"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a941148999cfd66f7036ec8bbfd2ce896">stop</a> ()</td></tr>
<tr class="memdesc:a941148999cfd66f7036ec8bbfd2ce896"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops listening for incoming datagrams. <br /></td></tr>
<tr class="separator:a941148999cfd66f7036ec8bbfd2ce896"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eea2160b724893b1cfa52c133b7c7a1"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#a6eea2160b724893b1cfa52c133b7c7a1">send_queue_size</a> () const noexcept</td></tr>
<tr class="memdesc:a6eea2160b724893b1cfa52c133b7c7a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of bytes queued for sending. <br /></td></tr>
<tr class="separator:a6eea2160b724893b1cfa52c133b7c7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3714b03e0364bb208cf27f0c2018161"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1udp__handle.html#ab3714b03e0364bb208cf27f0c2018161">send_queue_count</a> () const noexcept</td></tr>
<tr class="memdesc:ab3714b03e0364bb208cf27f0c2018161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of send requests currently in the queue awaiting to be processed. <br /></td></tr>
<tr class="separator:ab3714b03e0364bb208cf27f0c2018161"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classuvw_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classuvw_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; udp_handle, uv_udp_t, send_event, udp_data_event &gt;</a></td></tr>
<tr class="memitem:a80c5ba8c4db128cc525406e998549b96 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceuvw.html#a9e28e1855691dd1af105626ed11f3ac4">handle_category</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a80c5ba8c4db128cc525406e998549b96">category</a> () const noexcept</td></tr>
<tr class="memdesc:a80c5ba8c4db128cc525406e998549b96 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the category of the handle. <br /></td></tr>
<tr class="separator:a80c5ba8c4db128cc525406e998549b96 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88018be1fa3105e958c50a9f1881baa9 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">handle_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a88018be1fa3105e958c50a9f1881baa9">type</a> () const noexcept</td></tr>
<tr class="memdesc:a88018be1fa3105e958c50a9f1881baa9 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the handle. <br /></td></tr>
<tr class="separator:a88018be1fa3105e958c50a9f1881baa9 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a938d3ac6e5cc78f9442f9bb851170643 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a938d3ac6e5cc78f9442f9bb851170643">active</a> () const noexcept</td></tr>
<tr class="memdesc:a938d3ac6e5cc78f9442f9bb851170643 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the handle is active. <br /></td></tr>
<tr class="separator:a938d3ac6e5cc78f9442f9bb851170643 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae93cbf2156f0d673093e48832104a3cc inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#ae93cbf2156f0d673093e48832104a3cc">closing</a> () const noexcept</td></tr>
<tr class="memdesc:ae93cbf2156f0d673093e48832104a3cc inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a handle is closing or closed. <br /></td></tr>
<tr class="separator:ae93cbf2156f0d673093e48832104a3cc inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3648ed9805e8d0e8963f137f8584e483 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a3648ed9805e8d0e8963f137f8584e483">close</a> () noexcept</td></tr>
<tr class="memdesc:a3648ed9805e8d0e8963f137f8584e483 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request handle to be closed. <br /></td></tr>
<tr class="separator:a3648ed9805e8d0e8963f137f8584e483 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0d788997368ab1af2dc475126a46d2 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a2f0d788997368ab1af2dc475126a46d2">reference</a> () noexcept</td></tr>
<tr class="memdesc:a2f0d788997368ab1af2dc475126a46d2 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference the given handle. <br /></td></tr>
<tr class="separator:a2f0d788997368ab1af2dc475126a46d2 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83a91d1353c19f1a05aace78dc2cc453 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a83a91d1353c19f1a05aace78dc2cc453">unreference</a> () noexcept</td></tr>
<tr class="memdesc:a83a91d1353c19f1a05aace78dc2cc453 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unreference the given handle. <br /></td></tr>
<tr class="separator:a83a91d1353c19f1a05aace78dc2cc453 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1403f961ab40063f79c4a293c78ed63c inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a1403f961ab40063f79c4a293c78ed63c">referenced</a> () const noexcept</td></tr>
<tr class="memdesc:a1403f961ab40063f79c4a293c78ed63c inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the given handle referenced. <br /></td></tr>
<tr class="separator:a1403f961ab40063f79c4a293c78ed63c inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5852080ba1fd71a302c2424cf2df9a27 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a5852080ba1fd71a302c2424cf2df9a27">size</a> () const noexcept</td></tr>
<tr class="memdesc:a5852080ba1fd71a302c2424cf2df9a27 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the underlying handle type. <br /></td></tr>
<tr class="separator:a5852080ba1fd71a302c2424cf2df9a27 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa99406ca909aeaac17522959db8c71a4 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#aa99406ca909aeaac17522959db8c71a4">send_buffer_size</a> ()</td></tr>
<tr class="memdesc:aa99406ca909aeaac17522959db8c71a4 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the size of the send buffer used for the socket. <br /></td></tr>
<tr class="separator:aa99406ca909aeaac17522959db8c71a4 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a917ab9c1f011232b50f9980f29167ee2 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a917ab9c1f011232b50f9980f29167ee2">send_buffer_size</a> (int value)</td></tr>
<tr class="memdesc:a917ab9c1f011232b50f9980f29167ee2 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the size of the send buffer used for the socket. <br /></td></tr>
<tr class="separator:a917ab9c1f011232b50f9980f29167ee2 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a3337ef0c68ed5ba0e9bea0e2e90539 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a7a3337ef0c68ed5ba0e9bea0e2e90539">recv_buffer_size</a> ()</td></tr>
<tr class="memdesc:a7a3337ef0c68ed5ba0e9bea0e2e90539 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the size of the receive buffer used for the socket. <br /></td></tr>
<tr class="separator:a7a3337ef0c68ed5ba0e9bea0e2e90539 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace23bb725f6f80ae7a611f5228ad9f8d inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#ace23bb725f6f80ae7a611f5228ad9f8d">recv_buffer_size</a> (int value)</td></tr>
<tr class="memdesc:ace23bb725f6f80ae7a611f5228ad9f8d inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the size of the receive buffer used for the socket. <br /></td></tr>
<tr class="separator:ace23bb725f6f80ae7a611f5228ad9f8d inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce9568c94aa0122ff4cee6a57b4fae5 inherit pub_methods_classuvw_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceuvw.html#a1a4f79e341b89257a11403ee0739f2b4">os_file_descriptor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a0ce9568c94aa0122ff4cee6a57b4fae5">fd</a> () const</td></tr>
<tr class="memdesc:a0ce9568c94aa0122ff4cee6a57b4fae5 inherit pub_methods_classuvw_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the platform dependent file descriptor equivalent. <br /></td></tr>
<tr class="separator:a0ce9568c94aa0122ff4cee6a57b4fae5 inherit pub_methods_classuvw_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classuvw_1_1resource"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classuvw_1_1resource')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classuvw_1_1resource.html">uvw::resource&lt; T, U, E &gt;</a></td></tr>
<tr class="memitem:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="memTemplParams" colspan="2">template&lt;typename R = void&gt; </td></tr>
<tr class="memitem:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr&lt; R &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a> () const</td></tr>
<tr class="memdesc:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets user-defined data. <code>uvw</code> won't use this field in any case. <br /></td></tr>
<tr class="separator:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a759079eb405e5d2fda795d199d8efa80 inherit pub_methods_classuvw_1_1resource"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1resource.html#a759079eb405e5d2fda795d199d8efa80">data</a> (std::shared_ptr&lt; void &gt; udata)</td></tr>
<tr class="memdesc:a759079eb405e5d2fda795d199d8efa80 inherit pub_methods_classuvw_1_1resource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets arbitrary data. <code>uvw</code> won't use this field in any case. <br /></td></tr>
<tr class="separator:a759079eb405e5d2fda795d199d8efa80 inherit pub_methods_classuvw_1_1resource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_structuvw_1_1uv__type"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structuvw_1_1uv__type')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td></tr>
<tr class="memitem:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a> ()</td></tr>
<tr class="memdesc:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the handle. <br /></td></tr>
<tr class="separator:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classuvw_1_1loop.html">loop</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a> () const noexcept</td></tr>
<tr class="memdesc:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the loop from which the resource was originated. <br /></td></tr>
<tr class="separator:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">const U *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">U *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a> () noexcept</td></tr>
<tr class="memdesc:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classuvw_1_1emitter"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classuvw_1_1emitter')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td></tr>
<tr class="memitem:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ab913fa1c005a33c73b2eb2b0d1051b1f">on</a> (listener_t&lt; U &gt; f)</td></tr>
<tr class="memdesc:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a long-lived listener with the event emitter. <br /></td></tr>
<tr class="separator:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top"><a id="accff5c096692f5eebbe941189644e69d" name="accff5c096692f5eebbe941189644e69d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects the listener for the given event type. <br /></td></tr>
<tr class="separator:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top"><a id="aa71435e74e775cfa7012fe2e52ca5193" name="aa71435e74e775cfa7012fe2e52ca5193"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects all listeners. <br /></td></tr>
<tr class="separator:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ac02a29fe156faba7571b50450fc4f780">has</a> () const noexcept</td></tr>
<tr class="memdesc:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if there is a listener registered for the specific event. <br /></td></tr>
<tr class="separator:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The UDP handle. </p>
<p>UDP handles encapsulate UDP communication for both clients and servers.<br />
By default, <em><a class="el" href="structuvw_1_1ipv4.html" title="The IPv4 tag.">ipv4</a></em> is used as a template parameter. The handle already supports <em>IPv6</em> out-of-the-box by using <code><a class="el" href="structuvw_1_1ipv6.html" title="The IPv6 tag.">uvw::ipv6</a></code>.</p>
<p>To create an <code><a class="el" href="classuvw_1_1udp__handle.html" title="The UDP handle.">udp_handle</a></code> through a <code>loop</code>, arguments follow:</p>
<ul>
<li>An optional integer value that indicates optional flags used to initialize the socket.</li>
</ul>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/udp.html#c.uv_udp_init_ex">documentation</a> for further details. </p>
<p class="definition">Definition at line <a class="el" href="udp_8h_source.html#l00082">82</a> of file <a class="el" href="udp_8h_source.html">udp.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a9079623fc6271bfa244c3c65efeeeb90" name="a9079623fc6271bfa244c3c65efeeeb90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9079623fc6271bfa244c3c65efeeeb90">&#9670;&#160;</a></span>bind() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::bind </td>
<td>(</td>
<td class="paramtype">const sockaddr &amp;&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">udp_flags&#160;</td>
<td class="paramname"><em>opts</em> = <code>udp_flags::_UVW_ENUM</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Binds the UDP handle to an IP address and port. </p>
<p>Available flags are:</p>
<ul>
<li><code>udp_handle::udp_flags::IPV6ONLY</code></li>
<li><code>udp_handle::udp_flags::UDP_PARTIAL</code></li>
<li><code>udp_handle::udp_flags::REUSEADDR</code></li>
<li><code>udp_handle::udp_flags::UDP_MMSG_CHUNK</code></li>
<li><code>udp_handle::udp_flags::UDP_MMSG_FREE</code></li>
<li><code>udp_handle::udp_flags::UDP_LINUX_RECVERR</code></li>
<li><code>udp_handle::udp_flags::UDP_RECVMMSG</code></li>
</ul>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/udp.html#c.uv_udp_flags">documentation</a> for further details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>Initialized <code>sockaddr_in</code> or <code>sockaddr_in6</code> data structure. </td></tr>
<tr><td class="paramname">opts</td><td>Optional additional flags. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a76a116d936fc813bd0aa7eb1f7cb8c4b" name="a76a116d936fc813bd0aa7eb1f7cb8c4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76a116d936fc813bd0aa7eb1f7cb8c4b">&#9670;&#160;</a></span>bind() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::bind </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>ip</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">udp_flags&#160;</td>
<td class="paramname"><em>opts</em> = <code>udp_flags::_UVW_ENUM</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Binds the UDP handle to an IP address and port. </p>
<p>Available flags are:</p>
<ul>
<li><code>udp_handle::udp_flags::IPV6ONLY</code></li>
<li><code>udp_handle::udp_flags::UDP_PARTIAL</code></li>
<li><code>udp_handle::udp_flags::REUSEADDR</code></li>
<li><code>udp_handle::udp_flags::UDP_MMSG_CHUNK</code></li>
<li><code>udp_handle::udp_flags::UDP_MMSG_FREE</code></li>
<li><code>udp_handle::udp_flags::UDP_LINUX_RECVERR</code></li>
<li><code>udp_handle::udp_flags::UDP_RECVMMSG</code></li>
</ul>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/udp.html#c.uv_udp_flags">documentation</a> for further details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ip</td><td>The IP address to which to bind. </td></tr>
<tr><td class="paramname">port</td><td>The port to which to bind. </td></tr>
<tr><td class="paramname">opts</td><td>Optional additional flags. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a214797308c5f2731200c024a93b42694" name="a214797308c5f2731200c024a93b42694"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a214797308c5f2731200c024a93b42694">&#9670;&#160;</a></span>bind() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::bind </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a>&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">udp_flags&#160;</td>
<td class="paramname"><em>opts</em> = <code>udp_flags::_UVW_ENUM</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Binds the UDP handle to an IP address and port. </p>
<p>Available flags are:</p>
<ul>
<li><code>udp_handle::udp_flags::IPV6ONLY</code></li>
<li><code>udp_handle::udp_flags::UDP_PARTIAL</code></li>
<li><code>udp_handle::udp_flags::REUSEADDR</code></li>
<li><code>udp_handle::udp_flags::UDP_MMSG_CHUNK</code></li>
<li><code>udp_handle::udp_flags::UDP_MMSG_FREE</code></li>
<li><code>udp_handle::udp_flags::UDP_LINUX_RECVERR</code></li>
<li><code>udp_handle::udp_flags::UDP_RECVMMSG</code></li>
</ul>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/udp.html#c.uv_udp_flags">documentation</a> for further details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>A valid instance of <a class="el" href="structuvw_1_1socket__address.html" title="Address representation.">socket_address</a>. </td></tr>
<tr><td class="paramname">opts</td><td>Optional additional flags. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a12781b0139d6f5c820f80a12b3565f05" name="a12781b0139d6f5c820f80a12b3565f05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12781b0139d6f5c820f80a12b3565f05">&#9670;&#160;</a></span>broadcast()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool uvw::udp_handle::broadcast </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em> = <code>false</code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets broadcast on or off. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">enable</td><td>True to set broadcast on, false otherwise. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<a id="aad472e7bf741327c64a4230ea3dd4a3c" name="aad472e7bf741327c64a4230ea3dd4a3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad472e7bf741327c64a4230ea3dd4a3c">&#9670;&#160;</a></span>connect() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::connect </td>
<td>(</td>
<td class="paramtype">const sockaddr &amp;&#160;</td>
<td class="paramname"><em>addr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Associates the handle to a remote address and port (either IPv4 or IPv6). </p>
<p>Every message sent by this handle is automatically sent to the given destination.<br />
Trying to call this function on an already connected handle isn't allowed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>Initialized <code>sockaddr_in</code> or <code>sockaddr_in6</code> data structure. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a11df1fc6f341ea7cb8e89b1dd1611147" name="a11df1fc6f341ea7cb8e89b1dd1611147"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11df1fc6f341ea7cb8e89b1dd1611147">&#9670;&#160;</a></span>connect() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::connect </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>ip</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>port</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Associates the handle to a remote address and port (either IPv4 or IPv6). </p>
<p>Every message sent by this handle is automatically sent to the given destination.<br />
Trying to call this function on an already connected handle isn't allowed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ip</td><td>The address to which to bind. </td></tr>
<tr><td class="paramname">port</td><td>The port to which to bind. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a157c7c9f43a24b381b6995c0e9c8449a" name="a157c7c9f43a24b381b6995c0e9c8449a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a157c7c9f43a24b381b6995c0e9c8449a">&#9670;&#160;</a></span>connect() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::connect </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a>&#160;</td>
<td class="paramname"><em>addr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Associates the handle to a remote address and port (either IPv4 or IPv6). </p>
<p>Every message sent by this handle is automatically sent to the given destination.<br />
Trying to call this function on an already connected handle isn't allowed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>A valid instance of <a class="el" href="structuvw_1_1socket__address.html" title="Address representation.">socket_address</a>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a6cf1ce5b260081709167f3c21a7dfab8" name="a6cf1ce5b260081709167f3c21a7dfab8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cf1ce5b260081709167f3c21a7dfab8">&#9670;&#160;</a></span>disconnect()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::disconnect </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Disconnects the handle. </p>
<p>Trying to disconnect a handle that is not connected isn't allowed.</p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a8c9dab091d819fe3b90eee4ead6bedb8" name="a8c9dab091d819fe3b90eee4ead6bedb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c9dab091d819fe3b90eee4ead6bedb8">&#9670;&#160;</a></span>init()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::init </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">final</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the handle. The actual socket is created lazily. </p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
<p>Reimplemented from <a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">uvw::uv_type&lt; U &gt;</a>.</p>
</div>
</div>
<a id="ab904140516703f03fa737ca3ce68c6e4" name="ab904140516703f03fa737ca3ce68c6e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab904140516703f03fa737ca3ce68c6e4">&#9670;&#160;</a></span>multicast_interface()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool uvw::udp_handle::multicast_interface </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>iface</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the multicast interface to send or receive data on. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">iface</td><td>Interface address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<a id="a36459310de6b4ad096cf06aa465e0ed7" name="a36459310de6b4ad096cf06aa465e0ed7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36459310de6b4ad096cf06aa465e0ed7">&#9670;&#160;</a></span>multicast_loop()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool uvw::udp_handle::multicast_loop </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets IP multicast loop flag. </p>
<p>This makes multicast packets loop back to local sockets.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">enable</td><td>True to enable multicast loop, false otherwise. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<a id="a83d8fdd521cbc398bddb30ec1ed633f6" name="a83d8fdd521cbc398bddb30ec1ed633f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83d8fdd521cbc398bddb30ec1ed633f6">&#9670;&#160;</a></span>multicast_membership()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool uvw::udp_handle::multicast_membership </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>multicast</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>iface</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">membership&#160;</td>
<td class="paramname"><em>ms</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets membership for a multicast address. </p>
<p>Available values for <code>ms</code> are:</p>
<ul>
<li><code>udp_handle::membership::LEAVE_GROUP</code></li>
<li><code>udp_handle::membership::JOIN_GROUP</code></li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">multicast</td><td>Multicast address to set membership for. </td></tr>
<tr><td class="paramname">iface</td><td>Interface address. </td></tr>
<tr><td class="paramname">ms</td><td>Action to be performed. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<a id="abff8416a0fa3f99f7d17623721da2887" name="abff8416a0fa3f99f7d17623721da2887"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abff8416a0fa3f99f7d17623721da2887">&#9670;&#160;</a></span>multicast_ttl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool uvw::udp_handle::multicast_ttl </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>val</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the multicast ttl. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">val</td><td>A value in the range <code>[1, 255]</code>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<a id="ac58c30fc2b4372e62c15b76a33cfc6ac" name="ac58c30fc2b4372e62c15b76a33cfc6ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac58c30fc2b4372e62c15b76a33cfc6ac">&#9670;&#160;</a></span>open()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::open </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceuvw.html#aa64a7948231fbdec46df43be0c24f806">os_socket_handle</a>&#160;</td>
<td class="paramname"><em>socket</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Opens an existing file descriptor or SOCKET as a UDP handle. </p>
<p>The passed file descriptor or SOCKET is not checked for its type, but its required that it represents a valid datagram socket.</p>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/udp.html#c.uv_udp_open">documentation</a> for further details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">socket</td><td>A valid socket handle (either a file descriptor or a SOCKET).</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a46e82bbfc074199fbc2142a7600a0b62" name="a46e82bbfc074199fbc2142a7600a0b62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46e82bbfc074199fbc2142a7600a0b62">&#9670;&#160;</a></span>peer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a> uvw::udp_handle::peer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the remote address to which the handle is connected, if any. </p>
<dl class="section return"><dt>Returns</dt><dd>A valid instance of <a class="el" href="structuvw_1_1socket__address.html" title="Address representation.">socket_address</a>, an empty one in case of errors. </dd></dl>
</div>
</div>
<a id="ac3ebb4dea4d915113ead48a35753d82b" name="ac3ebb4dea4d915113ead48a35753d82b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3ebb4dea4d915113ead48a35753d82b">&#9670;&#160;</a></span>recv()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::recv </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Prepares for receiving data. </p>
<p>Note that if the socket has not previously been bound with <code><a class="el" href="classuvw_1_1udp__handle.html#a9079623fc6271bfa244c3c65efeeeb90" title="Binds the UDP handle to an IP address and port.">bind()</a></code>, it is bound to <code>0.0.0.0</code> (the <em>all interfaces</em> IPv4 address) and a random port number.</p>
<p>An UDP data event will be emitted when the handle receives data.</p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="af7376e36e07395cf79d7d9a69fe4b624" name="af7376e36e07395cf79d7d9a69fe4b624"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7376e36e07395cf79d7d9a69fe4b624">&#9670;&#160;</a></span>send() <span class="overload">[1/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::send </td>
<td>(</td>
<td class="paramtype">const sockaddr &amp;&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Note that if the socket has not previously been bound with <code><a class="el" href="classuvw_1_1udp__handle.html#a9079623fc6271bfa244c3c65efeeeb90" title="Binds the UDP handle to an IP address and port.">bind()</a></code>, it will be bound to <code>0.0.0.0</code> (the <em>all interfaces</em> IPv4 address) and a random port number.</p>
<p>The handle doesn't take the ownership of the data. Be sure that their lifetime overcome the one of the request.</p>
<p>A send event will be emitted when the data have been sent.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>Initialized <code>sockaddr_in</code> or <code>sockaddr_in6</code> data structure. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a5998d3702b6abc21a82b6eb0848e48db" name="a5998d3702b6abc21a82b6eb0848e48db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5998d3702b6abc21a82b6eb0848e48db">&#9670;&#160;</a></span>send() <span class="overload">[2/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::send </td>
<td>(</td>
<td class="paramtype">const sockaddr &amp;&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; char[]&gt;&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Note that if the socket has not previously been bound with <code><a class="el" href="classuvw_1_1udp__handle.html#a9079623fc6271bfa244c3c65efeeeb90" title="Binds the UDP handle to an IP address and port.">bind()</a></code>, it will be bound to <code>0.0.0.0</code> (the <em>all interfaces</em> IPv4 address) and a random port number.</p>
<p>The handle takes the ownership of the data and it is in charge of delete them.</p>
<p>A send event will be emitted when the data have been sent.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>Initialized <code>sockaddr_in</code> or <code>sockaddr_in6</code> data structure. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="ad74d5f4dbc82b8eb6008c223127974a5" name="ad74d5f4dbc82b8eb6008c223127974a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad74d5f4dbc82b8eb6008c223127974a5">&#9670;&#160;</a></span>send() <span class="overload">[3/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::send </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>ip</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Note that if the socket has not previously been bound with <code><a class="el" href="classuvw_1_1udp__handle.html#a9079623fc6271bfa244c3c65efeeeb90" title="Binds the UDP handle to an IP address and port.">bind()</a></code>, it will be bound to <code>0.0.0.0</code> (the <em>all interfaces</em> IPv4 address) and a random port number.</p>
<p>The handle doesn't take the ownership of the data. Be sure that their lifetime overcome the one of the request.</p>
<p>A send event will be emitted when the data have been sent.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ip</td><td>The address to which to send data. </td></tr>
<tr><td class="paramname">port</td><td>The port to which to send data. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="ab4d3dcd9437ee85db10bece0d0b7dabc" name="ab4d3dcd9437ee85db10bece0d0b7dabc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4d3dcd9437ee85db10bece0d0b7dabc">&#9670;&#160;</a></span>send() <span class="overload">[4/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::send </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>ip</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; char[]&gt;&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Note that if the socket has not previously been bound with <code><a class="el" href="classuvw_1_1udp__handle.html#a9079623fc6271bfa244c3c65efeeeb90" title="Binds the UDP handle to an IP address and port.">bind()</a></code>, it will be bound to <code>0.0.0.0</code> (the <em>all interfaces</em> IPv4 address) and a random port number.</p>
<p>The handle takes the ownership of the data and it is in charge of delete them.</p>
<p>A send event will be emitted when the data have been sent.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ip</td><td>The address to which to send data. </td></tr>
<tr><td class="paramname">port</td><td>The port to which to send data. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="ab70adc221530dcc744cf4c43e94461ca" name="ab70adc221530dcc744cf4c43e94461ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab70adc221530dcc744cf4c43e94461ca">&#9670;&#160;</a></span>send() <span class="overload">[5/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::send </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a>&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Note that if the socket has not previously been bound with <code><a class="el" href="classuvw_1_1udp__handle.html#a9079623fc6271bfa244c3c65efeeeb90" title="Binds the UDP handle to an IP address and port.">bind()</a></code>, it will be bound to <code>0.0.0.0</code> (the <em>all interfaces</em> IPv4 address) and a random port number.</p>
<p>The handle doesn't take the ownership of the data. Be sure that their lifetime overcome the one of the request.</p>
<p>A send event will be emitted when the data have been sent.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>A valid instance of <a class="el" href="structuvw_1_1socket__address.html" title="Address representation.">socket_address</a>. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a6c90b4bc888be6473a51ba9c11ead992" name="a6c90b4bc888be6473a51ba9c11ead992"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c90b4bc888be6473a51ba9c11ead992">&#9670;&#160;</a></span>send() <span class="overload">[6/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::send </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a>&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; char[]&gt;&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Note that if the socket has not previously been bound with <code><a class="el" href="classuvw_1_1udp__handle.html#a9079623fc6271bfa244c3c65efeeeb90" title="Binds the UDP handle to an IP address and port.">bind()</a></code>, it will be bound to <code>0.0.0.0</code> (the <em>all interfaces</em> IPv4 address) and a random port number.</p>
<p>The handle takes the ownership of the data and it is in charge of delete them.</p>
<p>A send event will be emitted when the data have been sent.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>A valid instance of <a class="el" href="structuvw_1_1socket__address.html" title="Address representation.">socket_address</a>. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="ab3714b03e0364bb208cf27f0c2018161" name="ab3714b03e0364bb208cf27f0c2018161"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3714b03e0364bb208cf27f0c2018161">&#9670;&#160;</a></span>send_queue_count()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t uvw::udp_handle::send_queue_count </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of send requests currently in the queue awaiting to be processed. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of send requests currently in the queue. </dd></dl>
</div>
</div>
<a id="a6eea2160b724893b1cfa52c133b7c7a1" name="a6eea2160b724893b1cfa52c133b7c7a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6eea2160b724893b1cfa52c133b7c7a1">&#9670;&#160;</a></span>send_queue_size()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t uvw::udp_handle::send_queue_size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the number of bytes queued for sending. </p>
<p>It strictly shows how much information is currently queued.</p>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes queued for sending. </dd></dl>
</div>
</div>
<a id="afee1107a373bb06e56187b9d10dbf0b1" name="afee1107a373bb06e56187b9d10dbf0b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afee1107a373bb06e56187b9d10dbf0b1">&#9670;&#160;</a></span>sock()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a> uvw::udp_handle::sock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the local IP and port of the UDP handle. </p>
<dl class="section return"><dt>Returns</dt><dd>A valid instance of <a class="el" href="structuvw_1_1socket__address.html" title="Address representation.">socket_address</a>, an empty one in case of errors. </dd></dl>
</div>
</div>
<a id="a941148999cfd66f7036ec8bbfd2ce896" name="a941148999cfd66f7036ec8bbfd2ce896"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a941148999cfd66f7036ec8bbfd2ce896">&#9670;&#160;</a></span>stop()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::stop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Stops listening for incoming datagrams. </p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a65d339c5aa2caef1bfa3bbaa53ebfdca" name="a65d339c5aa2caef1bfa3bbaa53ebfdca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65d339c5aa2caef1bfa3bbaa53ebfdca">&#9670;&#160;</a></span>try_send() <span class="overload">[1/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::try_send </td>
<td>(</td>
<td class="paramtype">const sockaddr &amp;&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Same as <code><a class="el" href="classuvw_1_1udp__handle.html#a5998d3702b6abc21a82b6eb0848e48db" title="Sends data over the UDP socket.">send()</a></code>, but it wont queue a send request if it cant be completed immediately.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>Initialized <code>sockaddr_in</code> or <code>sockaddr_in6</code> data structure. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="ab060fab01ac576afe3d332eb433a8f80" name="ab060fab01ac576afe3d332eb433a8f80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab060fab01ac576afe3d332eb433a8f80">&#9670;&#160;</a></span>try_send() <span class="overload">[2/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::try_send </td>
<td>(</td>
<td class="paramtype">const sockaddr &amp;&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; char[]&gt;&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Same as <code><a class="el" href="classuvw_1_1udp__handle.html#a5998d3702b6abc21a82b6eb0848e48db" title="Sends data over the UDP socket.">send()</a></code>, but it wont queue a send request if it cant be completed immediately.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>Initialized <code>sockaddr_in</code> or <code>sockaddr_in6</code> data structure. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="aaebe25374ee76d11d51e95c384220cba" name="aaebe25374ee76d11d51e95c384220cba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaebe25374ee76d11d51e95c384220cba">&#9670;&#160;</a></span>try_send() <span class="overload">[3/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::try_send </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>ip</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Same as <code><a class="el" href="classuvw_1_1udp__handle.html#a5998d3702b6abc21a82b6eb0848e48db" title="Sends data over the UDP socket.">send()</a></code>, but it wont queue a send request if it cant be completed immediately.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ip</td><td>The address to which to send data. </td></tr>
<tr><td class="paramname">port</td><td>The port to which to send data. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="aabeddd41e264d96a62577ff2ba4692d2" name="aabeddd41e264d96a62577ff2ba4692d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabeddd41e264d96a62577ff2ba4692d2">&#9670;&#160;</a></span>try_send() <span class="overload">[4/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::try_send </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>ip</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; char[]&gt;&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Same as <code><a class="el" href="classuvw_1_1udp__handle.html#a5998d3702b6abc21a82b6eb0848e48db" title="Sends data over the UDP socket.">send()</a></code>, but it wont queue a send request if it cant be completed immediately.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ip</td><td>The address to which to send data. </td></tr>
<tr><td class="paramname">port</td><td>The port to which to send data. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a5c72fcac682be0f8907778f5d72b565e" name="a5c72fcac682be0f8907778f5d72b565e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c72fcac682be0f8907778f5d72b565e">&#9670;&#160;</a></span>try_send() <span class="overload">[5/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::try_send </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a>&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Same as <code><a class="el" href="classuvw_1_1udp__handle.html#a5998d3702b6abc21a82b6eb0848e48db" title="Sends data over the UDP socket.">send()</a></code>, but it wont queue a send request if it cant be completed immediately.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>A valid instance of <a class="el" href="structuvw_1_1socket__address.html" title="Address representation.">socket_address</a>. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="aba07556c17d643ab57dddf14f94d7287" name="aba07556c17d643ab57dddf14f94d7287"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba07556c17d643ab57dddf14f94d7287">&#9670;&#160;</a></span>try_send() <span class="overload">[6/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::udp_handle::try_send </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structuvw_1_1socket__address.html">socket_address</a>&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; char[]&gt;&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the UDP socket. </p>
<p>Same as <code><a class="el" href="classuvw_1_1udp__handle.html#a5998d3702b6abc21a82b6eb0848e48db" title="Sends data over the UDP socket.">send()</a></code>, but it wont queue a send request if it cant be completed immediately.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>A valid instance of <a class="el" href="structuvw_1_1socket__address.html" title="Address representation.">socket_address</a>. </td></tr>
<tr><td class="paramname">data</td><td>The data to be sent. </td></tr>
<tr><td class="paramname">len</td><td>The lenght of the submitted data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="aea4a8f758017c962d825a119eb0698fb" name="aea4a8f758017c962d825a119eb0698fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea4a8f758017c962d825a119eb0698fb">&#9670;&#160;</a></span>ttl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool uvw::udp_handle::ttl </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>val</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the time to live. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">val</td><td>A value in the range <code>[1, 255]</code>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="udp_8h_source.html">udp.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>