# RakNet::NatTypeDetectionClient Class Reference
[NatTypeDetection]

Client code for NatTypeDetection. More...

`#include <NatTypeDetectionClient.h>`

Inheritance diagram for RakNet::NatTypeDetectionClient:

List of all members.

## Public Member Functions
void | DetectNATType (SystemAddress _serverAddress)
virtual void | Update (void)
| Update is called every time a packet is checked for .
virtual PluginReceiveResult | OnReceive (Packet *packet)
virtual void | OnClosedConnection (SystemAddress systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason)

## Detailed Description

Client code for NatTypeDetection.

See NatTypeDetectionServer.h for algorithm To use, just connect to the server, and call DetectNAT You will get back ID_NAT_TYPE_DETECTION_RESULT with one of the enumerated values of NATTypeDetectionResult found in NATTypeDetectionCommon.h See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html

See also:
  NatPunchthroughClient

  NatTypeDetectionServer

## Member Function Documentation

void RakNet::NatTypeDetectionClient::DetectNATType | ( | SystemAddress | _serverAddress | ) |

Send the message to the server to detect the nat type Server must be running NatTypeDetectionServer We must already be connected to the server

Parameters:

  `[in]` | serverAddress | address of the server

virtual void RakNet::NatTypeDetectionClient::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

Parameters:

  `[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 PluginReceiveResult RakNet::NatTypeDetectionClient::OnReceive | ( | Packet * | packet | ) | `[virtual]`

OnReceive is called for every packet.

Parameters:

  `[in]` | packet | the packet that is being returned to the user

Returns:
  True to allow the game and other plugins to get this message, false to absorb it

Reimplemented from PluginInterface2.

The documentation for this class was generated from the following file:

- d:/RakNet-3.x/Source/NatTypeDetectionClient.h