| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
- <title>RakNet: RakNet::UDPProxyClient 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="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 style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">RakNet
-  <span id="projectnumber">4.0</span>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.2 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="pages.html"><span>Related Pages</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
- <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Class List</span></a></li>
- <li><a href="classes.html"><span>Class Index</span></a></li>
- <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
- <li><a href="functions.html"><span>Class Members</span></a></li>
- </ul>
- </div>
- <div id="nav-path" class="navpath">
- <ul>
- <li class="navelem"><a class="el" href="namespaceRakNet.html">RakNet</a></li><li class="navelem"><a class="el" href="classRakNet_1_1UDPProxyClient.html">UDPProxyClient</a></li> </ul>
- </div>
- </div><!-- top -->
- <div class="header">
- <div class="summary">
- <a href="#pub-methods">Public Member Functions</a> |
- <a href="classRakNet_1_1UDPProxyClient-members.html">List of all members</a> </div>
- <div class="headertitle">
- <div class="title">RakNet::UDPProxyClient Class Reference<div class="ingroups"><a class="el" href="group__UDP__PROXY__GROUP.html">UDPProxy</a></div></div> </div>
- </div><!--header-->
- <div class="contents">
- <p>Communicates with <a class="el" href="classRakNet_1_1UDPProxyCoordinator.html" title="Middleman between UDPProxyServer and UDPProxyClient, maintaining a list of UDPProxyServer, and managing state for clients to find an available forwarding server.">UDPProxyCoordinator</a>, in order to find a <a class="el" href="classRakNet_1_1UDPProxyServer.html" title="UDPProxyServer to control our instance of UDPForwarder.">UDPProxyServer</a> to forward our datagrams.
- <a href="classRakNet_1_1UDPProxyClient.html#details">More...</a></p>
- <p><code>#include <UDPProxyClient.h></code></p>
- <div class="dynheader">
- Inheritance diagram for RakNet::UDPProxyClient:</div>
- <div class="dyncontent">
- <div class="center">
- <img src="classRakNet_1_1UDPProxyClient.png" usemap="#RakNet::UDPProxyClient_map" alt=""/>
- <map id="RakNet::UDPProxyClient_map" name="RakNet::UDPProxyClient_map">
- <area href="classRakNet_1_1PluginInterface2.html" alt="RakNet::PluginInterface2" shape="rect" coords="0,0,150,24"/>
- </map>
- </div></div>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
- Public Member Functions</h2></td></tr>
- <tr class="memitem:a8fc30b0a5224d0efe7ed9fe2ff9841d1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1UDPProxyClient.html#a8fc30b0a5224d0efe7ed9fe2ff9841d1">SetResultHandler</a> (<a class="el" href="structRakNet_1_1UDPProxyClientResultHandler.html">UDPProxyClientResultHandler</a> *rh)</td></tr>
- <tr class="separator:a8fc30b0a5224d0efe7ed9fe2ff9841d1"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a94ee5defadaa018d15de5ed2498625ad"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1UDPProxyClient.html#a94ee5defadaa018d15de5ed2498625ad">RequestForwarding</a> (<a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> proxyCoordinator, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> sourceAddress, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> targetAddressAsSeenFromCoordinator, RakNet::TimeMS timeoutOnNoDataMS, <a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *serverSelectionBitstream=0)</td></tr>
- <tr class="separator:a94ee5defadaa018d15de5ed2498625ad"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a94193970bef43ead993f1dfb734d3f73"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1UDPProxyClient.html#a94193970bef43ead993f1dfb734d3f73">RequestForwarding</a> (<a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> proxyCoordinator, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> sourceAddress, <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> targetGuid, RakNet::TimeMS timeoutOnNoDataMS, <a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *serverSelectionBitstream=0)</td></tr>
- <tr class="separator:a94193970bef43ead993f1dfb734d3f73"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0ef9ece963dde728a09c78f849683daf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ef9ece963dde728a09c78f849683daf"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1UDPProxyClient.html#a0ef9ece963dde728a09c78f849683daf">Update</a> (void)</td></tr>
- <tr class="memdesc:a0ef9ece963dde728a09c78f849683daf"><td class="mdescLeft"> </td><td class="mdescRight">Update is called every time a packet is checked for . <br/></td></tr>
- <tr class="separator:a0ef9ece963dde728a09c78f849683daf"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a92e2cefd0e42ee8a86fde60e32cd53c2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga89998adaafb29e5d879113b992161085">PluginReceiveResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1UDPProxyClient.html#a92e2cefd0e42ee8a86fde60e32cd53c2">OnReceive</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet)</td></tr>
- <tr class="separator:a92e2cefd0e42ee8a86fde60e32cd53c2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac310e4654dd16088934f393345c2dc5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac310e4654dd16088934f393345c2dc5c"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1UDPProxyClient.html#ac310e4654dd16088934f393345c2dc5c">OnRakPeerShutdown</a> (void)</td></tr>
- <tr class="memdesc:ac310e4654dd16088934f393345c2dc5c"><td class="mdescLeft"> </td><td class="mdescRight">Called when <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> is shutdown. <br/></td></tr>
- <tr class="separator:ac310e4654dd16088934f393345c2dc5c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_classRakNet_1_1PluginInterface2"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classRakNet_1_1PluginInterface2')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classRakNet_1_1PluginInterface2.html">RakNet::PluginInterface2</a></td></tr>
- <tr class="memitem:a550529f3753c4acf22c3b5c3e203552c inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a550529f3753c4acf22c3b5c3e203552c"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a550529f3753c4acf22c3b5c3e203552c">OnAttach</a> (void)</td></tr>
- <tr class="memdesc:a550529f3753c4acf22c3b5c3e203552c inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="mdescLeft"> </td><td class="mdescRight">Called when the interface is attached. <br/></td></tr>
- <tr class="separator:a550529f3753c4acf22c3b5c3e203552c inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a73d686ffe9a04a74e5a0ce78422c60f2 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a73d686ffe9a04a74e5a0ce78422c60f2"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a73d686ffe9a04a74e5a0ce78422c60f2">OnDetach</a> (void)</td></tr>
- <tr class="memdesc:a73d686ffe9a04a74e5a0ce78422c60f2 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="mdescLeft"> </td><td class="mdescRight">Called when the interface is detached. <br/></td></tr>
- <tr class="separator:a73d686ffe9a04a74e5a0ce78422c60f2 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a14825e69f0560996327e4dd351842c06 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a14825e69f0560996327e4dd351842c06"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a14825e69f0560996327e4dd351842c06">OnRakPeerStartup</a> (void)</td></tr>
- <tr class="memdesc:a14825e69f0560996327e4dd351842c06 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="mdescLeft"> </td><td class="mdescRight">Called when <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> is initialized. <br/></td></tr>
- <tr class="separator:a14825e69f0560996327e4dd351842c06 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a80c7612ca1a5dcfeec0b52d8049a71ea inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a80c7612ca1a5dcfeec0b52d8049a71ea">OnClosedConnection</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &systemAddress, <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> rakNetGUID, <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga376cc546fd6892c2ead48cd51796c8b8">PI2_LostConnectionReason</a> lostConnectionReason)</td></tr>
- <tr class="separator:a80c7612ca1a5dcfeec0b52d8049a71ea inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abf13327cc10f772ba06dff8f2687f8ae inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#abf13327cc10f772ba06dff8f2687f8ae">OnNewConnection</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &systemAddress, <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> rakNetGUID, bool isIncoming)</td></tr>
- <tr class="separator:abf13327cc10f772ba06dff8f2687f8ae inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9504489498df14b6efa5ca9bd39aede4 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a9504489498df14b6efa5ca9bd39aede4">OnFailedConnectionAttempt</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet, <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga3e92f686bace869b78c10508c58e0825">PI2_FailedConnectionAttemptReason</a> failedConnectionAttemptReason)</td></tr>
- <tr class="separator:a9504489498df14b6efa5ca9bd39aede4 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:accfca7d25262c48a87a30114383284aa inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#accfca7d25262c48a87a30114383284aa">UsesReliabilityLayer</a> (void) const </td></tr>
- <tr class="separator:accfca7d25262c48a87a30114383284aa inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7a6f69c6fc3a121e3676298a63a9ef78 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a7a6f69c6fc3a121e3676298a63a9ef78">OnDirectSocketSend</a> (const char *data, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress)</td></tr>
- <tr class="separator:a7a6f69c6fc3a121e3676298a63a9ef78 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9aac1101ad58e8443516588e96e066ec inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a9aac1101ad58e8443516588e96e066ec">OnDirectSocketReceive</a> (const char *data, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress)</td></tr>
- <tr class="separator:a9aac1101ad58e8443516588e96e066ec inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abf51e60546bd74d21c91dc0d6f9f3a4b inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#abf51e60546bd74d21c91dc0d6f9f3a4b">OnReliabilityLayerNotification</a> (const char *errorMessage, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress, bool isError)</td></tr>
- <tr class="separator:abf51e60546bd74d21c91dc0d6f9f3a4b inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a399b8c93daa0236599961e754742e2f7 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a399b8c93daa0236599961e754742e2f7">OnInternalPacket</a> (<a class="el" href="structRakNet_1_1InternalPacket.html">InternalPacket</a> *internalPacket, unsigned frameNumber, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress, RakNet::TimeMS time, int isSend)</td></tr>
- <tr class="separator:a399b8c93daa0236599961e754742e2f7 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae0b0cad31cfc209c48197c77d6b46345 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#ae0b0cad31cfc209c48197c77d6b46345">OnAck</a> (unsigned int messageNumber, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress, RakNet::TimeMS time)</td></tr>
- <tr class="separator:ae0b0cad31cfc209c48197c77d6b46345 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a5c976aea56ed85055a17c19d91b90727 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a5c976aea56ed85055a17c19d91b90727">OnPushBackPacket</a> (const char *data, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress)</td></tr>
- <tr class="separator:a5c976aea56ed85055a17c19d91b90727 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <div class="textblock"><p>Communicates with <a class="el" href="classRakNet_1_1UDPProxyCoordinator.html" title="Middleman between UDPProxyServer and UDPProxyClient, maintaining a list of UDPProxyServer, and managing state for clients to find an available forwarding server.">UDPProxyCoordinator</a>, in order to find a <a class="el" href="classRakNet_1_1UDPProxyServer.html" title="UDPProxyServer to control our instance of UDPForwarder.">UDPProxyServer</a> to forward our datagrams. </p>
- <p>When NAT Punchthrough fails, it is possible to use a non-NAT system to forward messages from us to the recipient, and vice-versa.<br/>
- The class to forward messages is <a class="el" href="classRakNet_1_1UDPForwarder.html" title="Forwards UDP datagrams. Independent of RakNet's protocol.">UDPForwarder</a>, and it is triggered over the network via the <a class="el" href="classRakNet_1_1UDPProxyServer.html" title="UDPProxyServer to control our instance of UDPForwarder.">UDPProxyServer</a> plugin.<br/>
- The <a class="el" href="classRakNet_1_1UDPProxyClient.html" title="Communicates with UDPProxyCoordinator, in order to find a UDPProxyServer to forward our datagrams...">UDPProxyClient</a> connects to <a class="el" href="classRakNet_1_1UDPProxyCoordinator.html" title="Middleman between UDPProxyServer and UDPProxyClient, maintaining a list of UDPProxyServer, and managing state for clients to find an available forwarding server.">UDPProxyCoordinator</a> to get a list of servers running <a class="el" href="classRakNet_1_1UDPProxyServer.html" title="UDPProxyServer to control our instance of UDPForwarder.">UDPProxyServer</a>, and the coordinator will relay our forwarding request </p>
- <dl class="section see"><dt>See Also</dt><dd><a class="el" href="classRakNet_1_1NatPunchthroughServer.html" title="Server code for NATPunchthrough.">NatPunchthroughServer</a> </dd>
- <dd>
- <a class="el" href="classRakNet_1_1NatPunchthroughClient.html" title="Client code for NATPunchthrough.">NatPunchthroughClient</a> </dd></dl>
- </div><h2 class="groupheader">Member Function Documentation</h2>
- <a class="anchor" id="a92e2cefd0e42ee8a86fde60e32cd53c2"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga89998adaafb29e5d879113b992161085">PluginReceiveResult</a> RakNet::UDPProxyClient::OnReceive </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> * </td>
- <td class="paramname"><em>packet</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>OnReceive is called for every packet. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">packet</td><td>the packet that is being returned to the user </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>True to allow the game and other plugins to get this message, false to absorb it </dd></dl>
- <p>Reimplemented from <a class="el" href="classRakNet_1_1PluginInterface2.html#aa86f33263c1648f11b8a006469272639">RakNet::PluginInterface2</a>.</p>
- </div>
- </div>
- <a class="anchor" id="a94ee5defadaa018d15de5ed2498625ad"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool RakNet::UDPProxyClient::RequestForwarding </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> </td>
- <td class="paramname"><em>proxyCoordinator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> </td>
- <td class="paramname"><em>sourceAddress</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> </td>
- <td class="paramname"><em>targetAddressAsSeenFromCoordinator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">RakNet::TimeMS </td>
- <td class="paramname"><em>timeoutOnNoDataMS</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>serverSelectionBitstream</em> = <code>0</code> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Sends a request to proxyCoordinator to find a server and have that server setup <a class="el" href="classRakNet_1_1UDPForwarder.html#ab7f8cd50c56845a8822c3ba0fbf3ab92">UDPForwarder::StartForwarding()</a> on our address to <em>targetAddressAsSeenFromCoordinator</em> The forwarded datagrams can be from any UDP source, not just <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a> </p>
- <dl class="section pre"><dt>Precondition</dt><dd>Must be connected to <em>proxyCoordinator</em> </dd>
- <dd>
- Systems running <a class="el" href="classRakNet_1_1UDPProxyServer.html" title="UDPProxyServer to control our instance of UDPForwarder.">UDPProxyServer</a> must be connected to <em>proxyCoordinator</em> and logged in via UDPProxyCoordinator::LoginServer() or <a class="el" href="classRakNet_1_1UDPProxyServer.html#a32edaff2aec11cce6a138897b0e2a158">UDPProxyServer::LoginToCoordinator()</a> </dd></dl>
- <dl class="section note"><dt>Note</dt><dd>May still fail, if all proxy servers have no open connections. </dd>
- <dd>
- <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a>'s protocol will ensure a message is sent at least every 5 seconds, so if routing <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a> messages, it is a reasonable value for timeoutOnNoDataMS, plus an extra few seconds for latency. </dd></dl>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">proxyCoordinator</td><td>System we are connected to that is running the <a class="el" href="classRakNet_1_1UDPProxyCoordinator.html" title="Middleman between UDPProxyServer and UDPProxyClient, maintaining a list of UDPProxyServer, and managing state for clients to find an available forwarding server.">UDPProxyCoordinator</a> plugin </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">sourceAddress</td><td>External IP address of the system we want to forward messages from. This does not have to be our own system. To specify our own system, you can pass UNASSIGNED_SYSTEM_ADDRESS which the coordinator will treat as our external IP address. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">targetAddressAsSeenFromCoordinator</td><td>External IP address of the system we want to forward messages to. If this system is connected to <a class="el" href="classRakNet_1_1UDPProxyCoordinator.html" title="Middleman between UDPProxyServer and UDPProxyClient, maintaining a list of UDPProxyServer, and managing state for clients to find an available forwarding server.">UDPProxyCoordinator</a> at this address using <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a>, that system will ping the server and thus open the router for incoming communication. In any other case, you are responsible for doing your own network communication to have that system ping the server. See also targetGuid in the other version of <a class="el" href="classRakNet_1_1UDPProxyClient.html#a94ee5defadaa018d15de5ed2498625ad">RequestForwarding()</a>, to avoid the need to know the IP address to the coordinator of the destination. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">timeoutOnNoData</td><td>If no data is sent by the forwarded systems, how long before removing the forward entry from <a class="el" href="classRakNet_1_1UDPForwarder.html" title="Forwards UDP datagrams. Independent of RakNet's protocol.">UDPForwarder</a>? UDP_FORWARDER_MAXIMUM_TIMEOUT is the maximum value. Recommended 10 seconds. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">serverSelectionBitstream</td><td>If you want to send data to UDPProxyCoordinator::GetBestServer(), write it here </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>true if the request was sent, false if we are not connected to proxyCoordinator </dd></dl>
- </div>
- </div>
- <a class="anchor" id="a94193970bef43ead993f1dfb734d3f73"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">bool RakNet::UDPProxyClient::RequestForwarding </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> </td>
- <td class="paramname"><em>proxyCoordinator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> </td>
- <td class="paramname"><em>sourceAddress</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> </td>
- <td class="paramname"><em>targetGuid</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">RakNet::TimeMS </td>
- <td class="paramname"><em>timeoutOnNoDataMS</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>serverSelectionBitstream</em> = <code>0</code> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Same as above, but specify the target with a GUID, in case you don't know what its address is to the coordinator If requesting forwarding to a <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a> enabled system, then it is easier to use targetGuid instead of targetAddressAsSeenFromCoordinator </p>
- </div>
- </div>
- <a class="anchor" id="a8fc30b0a5224d0efe7ed9fe2ff9841d1"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void RakNet::UDPProxyClient::SetResultHandler </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structRakNet_1_1UDPProxyClientResultHandler.html">UDPProxyClientResultHandler</a> * </td>
- <td class="paramname"><em>rh</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Receives the results of calling <a class="el" href="classRakNet_1_1UDPProxyClient.html#a94ee5defadaa018d15de5ed2498625ad">RequestForwarding()</a> Set before calling RequestForwarding or you won't know what happened </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">resultHandler</td><td></td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following file:<ul>
- <li>D:/temp/RakNet_PC/Source/<a class="el" href="UDPProxyClient_8h.html">UDPProxyClient.h</a></li>
- </ul>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- Generated on Mon Jun 2 2014 20:10:29 for RakNet by  <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/>
- </a> 1.8.2
- </small></address>
- </body>
- </html>
|