#include <RakPeerInterface.h>
Inheritance diagram for RakPeerInterface:
Public Member Functions | |
virtual | ~RakPeerInterface () |
virtual bool | Initialize (unsigned short MaximumNumberOfPeers, unsigned short localPort, int _threadSleepTimer)=0 |
virtual void | InitializeSecurity (char *pubKeyP, char *pubKeyQ, char *privKeyE, char *privKeyN)=0 |
virtual void | DisableSecurity (void)=0 |
virtual void | SetMaximumIncomingConnections (unsigned short numberAllowed)=0 |
virtual unsigned short | GetMaximumIncomingConnections (void) const =0 |
virtual void | SetIncomingPassword (char *passwordData, int passwordDataLength)=0 |
RakNet::BitStream * | GetIncomingPassword (void) |
virtual bool | Connect (char *host, unsigned short remotePort, char *passwordData, int passwordDataLength)=0 |
virtual void | Disconnect (unsigned long blockDuration)=0 |
virtual bool | IsActive (void) const =0 |
virtual bool | GetConnectionList (PlayerID *remoteSystems, unsigned short *numberOfSystems) const =0 |
virtual bool | Send (char *data, const long length, PacketPriority priority, PacketReliability reliability, char orderingChannel, PlayerID playerId, bool broadcast)=0 |
virtual bool | Send (RakNet::BitStream *bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, PlayerID playerId, bool broadcast)=0 |
virtual Packet * | Receive (void)=0 |
virtual void | DeallocatePacket (Packet *packet)=0 |
virtual unsigned short | GetMaximumNumberOfPeers (void) const =0 |
virtual void | RegisterAsRemoteProcedureCall (char *uniqueID, void(*functionName)(char *input, int numberOfBitsOfData, PlayerID sender))=0 |
virtual void | UnregisterAsRemoteProcedureCall (char *uniqueID)=0 |
virtual bool | RPC (char *uniqueID, char *data, unsigned long bitLength, PacketPriority priority, PacketReliability reliability, char orderingChannel, PlayerID playerId, bool broadcast, bool shiftTimestamp)=0 |
virtual bool | RPC (char *uniqueID, RakNet::BitStream *bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, PlayerID playerId, bool broadcast, bool shiftTimestamp)=0 |
virtual void | CloseConnection (PlayerID target, bool sendDisconnectionNotification, unsigned long blockDuration)=0 |
virtual int | GetIndexFromPlayerID (PlayerID playerId)=0 |
virtual PlayerID | GetPlayerIDFromIndex (int index)=0 |
virtual void | AddToBanList (const char *IP)=0 |
virtual void | RemoveFromBanList (const char *IP)=0 |
virtual void | ClearBanList (void)=0 |
virtual bool | IsBanned (const char *IP)=0 |
virtual void | Ping (PlayerID target)=0 |
virtual void | Ping (char *host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections)=0 |
virtual int | GetAveragePing (PlayerID target)=0 |
virtual int | GetLastPing (PlayerID target) const =0 |
virtual int | GetLowestPing (PlayerID target) const =0 |
virtual void | SetOccasionalPing (bool doPing)=0 |
virtual RakNet::BitStream * | GetRemoteStaticData (PlayerID playerId)=0 |
virtual void | SetRemoteStaticData (PlayerID playerId, char *data, const long length)=0 |
virtual void | SendStaticData (PlayerID target)=0 |
virtual void | SetOfflinePingResponse (char *data, const unsigned long length)=0 |
virtual PlayerID | GetInternalID (void) const =0 |
virtual PlayerID | GetExternalID (PlayerID target) const =0 |
virtual bool | SetMTUSize (int size)=0 |
virtual int | GetMTUSize (void) const =0 |
virtual unsigned | GetNumberOfAddresses (void)=0 |
virtual const char * | PlayerIDToDottedIP (PlayerID playerId) const =0 |
virtual void | IPToPlayerID (const char *host, unsigned short remotePort, PlayerID *playerId)=0 |
virtual const char * | GetLocalIP (unsigned int index)=0 |
void | AllowConnectionResponseIPMigration (bool allow) |
virtual void | AdvertiseSystem (char *host, unsigned short remotePort)=0 |
virtual void | SetCompileFrequencyTable (bool doCompile)=0 |
virtual bool | GetOutgoingFrequencyTable (unsigned long outputFrequencyTable[256])=0 |
virtual bool | GenerateCompressionLayer (unsigned long inputFrequencyTable[256], bool inputLayer)=0 |
virtual bool | DeleteCompressionLayer (bool inputLayer)=0 |
virtual float | GetCompressionRatio (void) const =0 |
virtual float | GetDecompressionRatio (void) const =0 |
virtual void | GetPasswordData (char *passwordData, int *passwordDataLength)=0 |
virtual void | PushBackPacket (Packet *packet)=0 |
virtual RakNetStatisticsStruct *const | GetStatistics (PlayerID playerId)=0 |
This class define the user point of view of a RakPeer instance.
|
Destructor |
|
Bans an IP from connecting. Banned IPs persist between connections.
|
|
Sends a one byte message ID_ADVERTISE_SYSTEM to the remote unconnected system. This will tell the remote system our external IP outside the LAN, and can be used for NAT punch through Requires: The sender and recipient must already be started via a successful call to Initialize
|
|
Allow or disallow connection responses from any IP. Normally this should be false, but may be necessary when connection to servers with multiple IP addresses.
|
|
Allows all previously banned IPs to connect. |
|
Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out).
Implemented in RakPeer. |
|
Call this to connect to the specified host (ip or domain name) and server port. Calling Connect and not calling SetMaximumIncomingConnections acts as a dedicated client. Calling both acts as a true peer. This is a non-blocking connection. You know the connection is successful when IsConnected() returns true or receive gets a packet with the type identifier ID_CONNECTION_ACCEPTED. If the connection is not successful, such as rejected connection or no response then neither of these things will happen. Requires that you first call Initialize
Implemented in RakPeer. |
|
Call this to deallocate a packet returned by Receive when you are done handling it.
|
|
Deletes the output or input layer as specified. This is not necessary to call and is only valuable for freeing memory You should only call this when disconnected
|
|
Disables all security.
|
|
Stops the network threads and close all connections. Multiple calls are ok.
|
|
Generates the compression layer from the input frequency table. You should call this twice - once with inputLayer as true and once as false. The frequency table passed here with inputLayer=true should match the frequency table on the recipient with inputLayer=false. Likewise, the frequency table passed here with inputLayer=false should match the frequency table on the recipient with inputLayer=true Calling this function when there is an existing layer will overwrite the old layer You should only call this when disconnected
|
|
Gets the average of all ping times read for a specified target
|
|
Get the compression ratio. A low compression ratio is good. Compression is for outgoing data
|
|
Fills the array remoteSystems with the playerID of all the systems we are connected to
Implemented in RakPeer. |
|
Get the decompression ratio. A high decompression ratio is good. Decompression is for incoming data
|
|
Return the unique address identifier that represents you on the the network and is based on your external IP / port (the IP / port the specified player uses to communicate with you)
Implemented in RakPeer. |
|
Get the password set by SetIncomingPassword in a BitStream
Reimplemented in RakPeer. |
|
Given a playerID, returns an index from 0 to the maximum number of players allowed - 1.
|
|
Return the unique address identifier that represents you on the the network and is based on your local IP / port Note that unlike in previous versions, this is a struct and is not sequential Implemented in RakPeer. |
|
Gets the last ping time read for the specific player or -1 if none read yet
Implemented in RakPeer. |
|
Returns an IP address at index 0 to GetNumberOfAddresses-1 |
|
Gets the lowest ping time read or -1 if none read yet
Implemented in RakPeer. |
|
Get the number of maximum incomming connection.
Implemented in RakPeer. |
|
Return the total number of connections we are allowed Implemented in RakPeer. |
|
Returns the current MTU size
|
|
Returns the number of IP addresses we have |
|
Returns the frequency of outgoing bytes into outputFrequencyTable The purpose is to save to file as either a master frequency table from a sample game session for passing to GenerateCompressionLayer(false); You should only call this when disconnected. Requires that you first enable data frequency tracking by calling SetCompileFrequencyTable(true)
Implemented in RakPeer. |
|
Retrieves the data you passed to the passwordData parameter in Connect
Implemented in RakPeer. |
|
This function is only useful for looping through all players.
|
|
All systems have a block of data associated with them, for user use. This block of data can be used to easily specify typical system data that you want to know on connection, such as the player's name.
Implemented in RakPeer. |
|
Returns a structure containing a large set of network statistics for the specified system You can map this data to a string using the C style StatisticsToString function
|
|
Starts the network threads, opens the listen port You must call this before calling SetMaximumIncomingConnections or Connect Multiple calls while already active are ignored. To call this function again with different settings, you must first call Disconnect() To accept incoming connections, use SetMaximumIncomingConnections Parameters:
Implemented in RakPeer. |
|
Must be called while offline Secures connections though a combination of SHA1, AES128, SYN Cookies, and RSA to prevent connection spoofing, replay attacks, data eavesdropping, packet tampering, and MitM attacks. There is a significant amount of processing and a slight amount of bandwidth overhead for this feature. If you accept connections, you must call this or else secure connections will not be enabled for incoming connections. If you are connecting to another system, you can call this with values for the (e and p,q) public keys before connecting to prevent MitM
Implemented in RakPeer. |
|
Converts a dotted IP to a playerId
Implemented in RakPeer. |
|
Returns true if the network threads are running |
|
Determines if a particular IP is banned.
|
|
Send a ping to the specified unconnected system. The remote system, if it is Initialized, will respond with ID_PONG. The final ping time will be encoded in the following 4 bytes (2-5) as an unsigned long Requires: The sender and recipient must already be started via a successful call to Initialize
Implemented in RakPeer. |
|
Send a ping to the specified connected system.
Implemented in RakPeer. |
|
Returns the dotted IP address for the specified playerId
|
|
Put a packet back at the end of the receive queue in case you don't want to deal with it immediately
|
|
Gets a packet from the incoming packet queue. Use DeallocatePacket to deallocate the packet after you are done with it. Check the Packet struct at the top of CoreNetworkStructures.h for the format of the struct
|
|
Bans an IP from connecting. Banned IPs persist between connections.
|
|
Sends a block of data to the specified system that you are connected to. This function only works while the client is connected (Use the Connect function).
|
|
Sends a block of data to the specified system that you are connected to. This function only works while the client is connected (Use the Connect function).
|
|
Sends your static data to the specified system. This is automatically done on connection. You should call this when you change your static data. To send the static data of another system (such as relaying their data) you should do this normally with Send
Implemented in RakPeer. |
|
Enables or disables our tracking of bytes input to and output from the network. This is required to get a frequency table, which is used to generate a new compression layer. You can call this at any time - however you SHOULD only call it when disconnected. Otherwise you will only track part of the values sent over the network. This value persists between connect calls and defaults to false (no frequency tracking)
Implemented in RakPeer. |
|
Sets the password incoming connections must match in the call to Connect (defaults to none) Pass 0 to passwordData to specify no password
Implemented in RakPeer. |
|
Sets how many incoming connections are allowed. If this is less than the number of players currently connected, no more players will be allowed to connect. If this is greater than the maximum number of peers allowed, it will be reduced to the maximum number of peers allowed.
Implemented in RakPeer. |
|
Change the MTU size in order to improve performance when sending large packets This can only be called when not connected. A too high of value will cause packets not to arrive at worst and be fragmented at best. A too low of value will split packets unnecessarily. Parameters:
|
|
Ping the remote systems every so often. This is off by default This will work anytime
Implemented in RakPeer. |
|
Sets the data to send with an (LAN server discovery) /(offline ping) response See the Ping sample project for how this is used.
|
|
All systems have a block of data associated with them, for user use. This block of data can be used to easily specify typical system data that you want to know on connection, such as the player's name.
Implemented in RakPeer. |