#include <NatPunchthroughClient.h>
Public Member Functions | |
bool | OpenNAT (RakNetGUID destination, SystemAddress facilitator) |
Punchthrough a NAT. Doesn't connect, just tries to setup the routing table. | |
PunchthroughConfiguration * | GetPunchthroughConfiguration (void) |
void | SetDebugInterface (NatPunchthroughDebugInterface *i) |
unsigned short | GetUPNPExternalPort (void) const |
unsigned short | GetUPNPInternalPort (void) const |
RakNet::RakString | GetUPNPInternalAddress (void) const |
virtual void | Update (void) |
Update is called every time a packet is checked for . | |
virtual PluginReceiveResult | OnReceive (Packet *packet) |
virtual void | OnNewConnection (SystemAddress systemAddress, RakNetGUID rakNetGUID, bool isIncoming) |
virtual void | OnClosedConnection (SystemAddress systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason) |
virtual void | OnAttach (void) |
virtual void | OnDetach (void) |
virtual void | OnRakPeerShutdown (void) |
Called when RakPeer is shutdown. |
Maintain connection to NatPunchthroughServer to process incoming connection attempts through NatPunchthroughClient
Client will send datagrams to port to estimate next port
Will simultaneously connect with another client once ports are estimated.
PunchthroughConfiguration* NatPunchthroughClient::GetPunchthroughConfiguration | ( | void | ) |
Modify the system configuration if desired Don't modify the variables in the structure while punchthrough is in progress
unsigned short NatPunchthroughClient::GetUPNPExternalPort | ( | void | ) | const |
Returns the port on the router that incoming messages will be sent to UPNP needs to know this (See UPNP project)
RakNet::RakString NatPunchthroughClient::GetUPNPInternalAddress | ( | void | ) | const |
Returns our locally bound system address Equivalent to calling rakPeer->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS).ToString(false);
unsigned short NatPunchthroughClient::GetUPNPInternalPort | ( | void | ) | const |
Returns our internal port that RakNet was started on Equivalent to calling rakPeer->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS).port
virtual void NatPunchthroughClient::OnAttach | ( | void | ) | [virtual] |
Called when the interface is attached
[in] | peer | the instance of RakPeer that is calling Receive |
Reimplemented from PluginInterface2.
virtual void NatPunchthroughClient::OnClosedConnection | ( | SystemAddress | systemAddress, | |
RakNetGUID | rakNetGUID, | |||
PI2_LostConnectionReason | lostConnectionReason | |||
) | [virtual] |
Called when a connection is dropped because the user called RakPeer::CloseConnection() for a particular system
[in] | systemAddress | The system whose connection was closed |
[in] | rakNetGuid | The guid of the specified system |
[in] | lostConnectionReason | How the connection was closed: manually, connection lost, or notification of disconnection |
Reimplemented from PluginInterface2.
virtual void NatPunchthroughClient::OnDetach | ( | void | ) | [virtual] |
Called when the interface is detached
[in] | peer | the instance of RakPeer that is calling Receive |
Reimplemented from PluginInterface2.
virtual void NatPunchthroughClient::OnNewConnection | ( | SystemAddress | systemAddress, | |
RakNetGUID | rakNetGUID, | |||
bool | isIncoming | |||
) | [virtual] |
Called when we got a new connection
[in] | systemAddress | Address of the new connection |
[in] | rakNetGuid | The guid of the specified system |
[in] | isIncoming | If true, this is ID_NEW_INCOMING_CONNECTION, or the equivalent |
Reimplemented from PluginInterface2.
virtual PluginReceiveResult NatPunchthroughClient::OnReceive | ( | Packet * | packet | ) | [virtual] |
OnReceive is called for every packet.
[in] | packet | the packet that is being returned to the user |
Reimplemented from PluginInterface2.
void NatPunchthroughClient::SetDebugInterface | ( | NatPunchthroughDebugInterface * | i | ) |
Sets a callback to be called with debug messages
[in] | i | Pointer to an interface. The pointer is stored, so don't delete it while in progress. Pass 0 to clear. |