internal static HandleRef getCPtr(RakNetStatistics obj) { if (obj != null) { if (obj.bytesInSendBufferIsCached) { obj.SetBytesInSendBuffer(obj.bytesInSendBuffer, obj.bytesInSendBuffer.Length); } if (obj.messageInSendBufferIsCached) { obj.SetMessageInSendBuffer(obj.messageInSendBuffer, obj.messageInSendBuffer.Length); } if (obj.runningTotalIsCached) { obj.SetRunningTotal(obj.runningTotal, obj.runningTotal.Length); } if (obj.valueOverLastSecondIsCached) { obj.SetValueOverLastSecond(obj.valueOverLastSecond, obj.valueOverLastSecond.Length); } obj.bytesInSendBufferIsCached = false; obj.messageInSendBufferIsCached = false; obj.runningTotalIsCached = false; obj.valueOverLastSecondIsCached = false; } return((obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr); }
public virtual RakNetStatistics GetStatistics(SystemAddress systemAddress) { global::System.IntPtr cPtr = RakNetPINVOKE.CSharp_RakNet_RakPeerInterface_GetStatistics__SWIG_1(swigCPtr, SystemAddress.getCPtr(systemAddress)); RakNetStatistics ret = (cPtr == global::System.IntPtr.Zero) ? null : new RakNetStatistics(cPtr, false); if (RakNetPINVOKE.SWIGPendingException.Pending) { throw RakNetPINVOKE.SWIGPendingException.Retrieve(); } return(ret); }
public override RakNetStatistics GetStatistics(SystemAddress systemAddress, RakNetStatistics rns) { global::System.IntPtr cPtr = RakNetPINVOKE.RakPeer_GetStatistics__SWIG_0(swigCPtr, SystemAddress.getCPtr(systemAddress), RakNetStatistics.getCPtr(rns)); RakNetStatistics ret = (cPtr == global::System.IntPtr.Zero) ? null : new RakNetStatistics(cPtr, false); if (RakNetPINVOKE.SWIGPendingException.Pending) { throw RakNetPINVOKE.SWIGPendingException.Retrieve(); } return(ret); }
public bool GetStatisticsFull(uint index, out RakNetStatistics _statistics) { _statistics = new RakNetStatistics(); if (pointer == IntPtr.Zero) { return(false); } return(RakPeer_Native.NET_Statistics(pointer, index, ref _statistics)); }
public virtual bool GetStatistics(uint index, RakNetStatistics rns) { bool ret = RakNetPINVOKE.CSharp_RakNet_RakPeerInterface_GetStatistics__SWIG_2(swigCPtr, index, RakNetStatistics.getCPtr(rns)); return(ret); }
public override bool GetStatistics(uint index, RakNetStatistics rns) { bool ret = RakNetPINVOKE.CSharp_RakNet_RakPeer_GetStatistics__SWIG_2(swigCPtr, index, RakNetStatistics.getCPtr(rns)); return(ret); }
public static string StatisticsToStringHelper(RakNetStatistics s, string buffer, int verbosityLevel) { string ret = RakNetPINVOKE.StatisticsToStringHelper(RakNetStatistics.getCPtr(s), buffer, verbosityLevel); return(ret); }
public static void StatisticsToString(RakNetStatistics s, out string buffer, int verbosityLevel) { String tmp = new String('c', 9999); buffer = StatisticsToStringHelper(s, tmp, verbosityLevel); }
static void Main(string[] args) { int BIG_PACKET_SIZE = 103296250; bool quit; bool sentPacket = false; RakPeerInterface client, server; byte[] text; string message; client = server = null; string ip = string.Empty; text = new byte[BIG_PACKET_SIZE]; quit = false; char ch; Console.WriteLine("Enter 's' to run as server, 'c' to run as client, space to run local."); ch = ' '; message = Console.ReadLine(); ch = message.ToCharArray()[0]; if (ch == 'c') { client = RakPeerInterface.GetInstance(); Console.WriteLine("Working as client"); Console.WriteLine("Enter remote IP: "); ip = Console.ReadLine(); if (ip.Length == 0) { ip = "127.0.0.1"; } } else if (ch == 's') { server = RakPeerInterface.GetInstance(); Console.WriteLine("Working as server"); } else { client = RakPeerInterface.GetInstance(); server = RakPeerInterface.GetInstance(); ip = "127.0.0.1"; } short socketFamily; socketFamily = AF_INET; if (server != null) { server.SetTimeoutTime(5000, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS); SocketDescriptor socketDescriptor = new SocketDescriptor(3000, "0"); socketDescriptor.socketFamily = socketFamily; server.SetMaximumIncomingConnections(4); StartupResult sr = new StartupResult(); sr = server.Startup(4, socketDescriptor, 1); if (sr != StartupResult.RAKNET_STARTED) { Console.WriteLine("Error: Server failed to start: {0} ", sr.ToString()); return; } // server.SetPerConnectionOutgoingBandwidthLimit(50000); Console.WriteLine("Server started on {0}", server.GetMyBoundAddress().ToString()); } if (client != null) { client.SetTimeoutTime(5000, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS); SocketDescriptor socketDescriptor = new SocketDescriptor(0, "0"); socketDescriptor.socketFamily = socketFamily; client.SetMaximumIncomingConnections(4); StartupResult sr = new StartupResult(); sr = client.Startup(4, socketDescriptor, 1); if (sr != StartupResult.RAKNET_STARTED) { Console.WriteLine("Error: Server failed to start: " + sr.ToString()); return; } client.SetSplitMessageProgressInterval(10000); // Get ID_DOWNLOAD_PROGRESS notifications client.SetPerConnectionOutgoingBandwidthLimit(10000); Console.WriteLine("Client started on {0}", client.GetMyBoundAddress().ToString()); client.Connect(ip, 3000, null, 0); } System.Threading.Thread.Sleep(500); Console.WriteLine("My IP addresses: "); RakPeerInterface rakPeer; if (server != null) { rakPeer = server; } else { rakPeer = client; } for (uint i = 0; i < rakPeer.GetNumberOfAddresses(); i++) { Console.WriteLine("{0}. {1}", (i + 1).ToString(), rakPeer.GetLocalIP(i).ToString()); } uint start, stop = 0; uint nextStatTime = RakNet.RakNet.GetTimeMS() + 1000; Packet packet = new Packet(); start = RakNet.RakNet.GetTimeMS(); while (!quit) { if (server != null) { for (packet = server.Receive(); packet != null; server.DeallocatePacket(packet), packet = server.Receive()) { if ((DefaultMessageIDTypes)packet.data[0] == DefaultMessageIDTypes.ID_NEW_INCOMING_CONNECTION || packet.data[0] == (int)253) { Console.WriteLine("Starting send"); start = RakNet.RakNet.GetTimeMS(); if (BIG_PACKET_SIZE < 100000) { for (int i = 0; i < BIG_PACKET_SIZE; i++) { text[i] = (byte)(255 - (i & 255)); } } else { text[0] = (byte)255; } DefaultMessageIDTypes idtype = (DefaultMessageIDTypes)packet.data[0]; if (idtype == DefaultMessageIDTypes.ID_CONNECTION_LOST) { Console.WriteLine("ID_CONNECTION_LOST from {0}", packet.systemAddress.ToString()); } else if (idtype == DefaultMessageIDTypes.ID_DISCONNECTION_NOTIFICATION) { Console.WriteLine("ID_DISCONNECTION_NOTIFICATION from {0}", packet.systemAddress.ToString()); } else if (idtype == DefaultMessageIDTypes.ID_NEW_INCOMING_CONNECTION) { Console.WriteLine("ID_NEW_INCOMING_CONNECTION from {0}", packet.systemAddress.ToString()); } else if (idtype == DefaultMessageIDTypes.ID_CONNECTION_REQUEST_ACCEPTED) { Console.WriteLine("ID_CONNECTION_REQUEST_ACCEPTED from {0}", packet.systemAddress.ToString()); } server.Send(text, BIG_PACKET_SIZE, PacketPriority.LOW_PRIORITY, PacketReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT, (char)0, packet.systemAddress, false); } } if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); switch (key.Key) { case ConsoleKey.Spacebar: Console.WriteLine("Sending medium priority message"); byte[] t = new byte[1]; t[0] = 254; server.Send(t, 1, PacketPriority.MEDIUM_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)1, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, true); break; case ConsoleKey.Q: quit = true; break; default: break; } } } if (client != null) { packet = client.Receive(); while (packet != null) { DefaultMessageIDTypes idtype = (DefaultMessageIDTypes)packet.data[0]; if (idtype == DefaultMessageIDTypes.ID_DOWNLOAD_PROGRESS) { BitStream progressBS = new BitStream(packet.data, packet.length, false); progressBS.IgnoreBits(8); byte[] progress = new byte[4], total = new byte[4], partlength = new byte[4]; progressBS.ReadBits(progress, sizeof(uint) << 3, true); progressBS.ReadBits(total, sizeof(uint) << 3, true); progressBS.ReadBits(partlength, sizeof(uint) << 3, true); Console.WriteLine("Progress: msgID= {0}, Progress: {1} / {2}, Partsize: {3}", packet.data[0].ToString(), BitConverter.ToUInt32(progress, 0).ToString(), BitConverter.ToUInt32(total, 0).ToString(), BitConverter.ToUInt32(partlength, 0).ToString()); } else if (packet.data[0] == 255) { if (packet.length != BIG_PACKET_SIZE) { Console.WriteLine("Test failed. {0} bytes (wrong number of bytes.", packet.length); quit = true; break; } if (BIG_PACKET_SIZE <= 100000) { for (int i = 0; i < BIG_PACKET_SIZE; i++) { if (packet.data[i] != 255 - (i & 255)) { Console.WriteLine("Test failed. {0} bytes (bad data).", packet.length); quit = true; break; } } } if (quit == false) { Console.WriteLine("Test Succeeded. {0} bytes.", packet.length); bool repeat = false; if (repeat) { Console.WriteLine("Rerequesting send."); byte[] ch2 = new byte[1]; ch2[0] = (byte)253; client.Send(ch2, 1, PacketPriority.MEDIUM_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)1, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, true); GC.Collect(); } else { quit = true; break; } } } else if ((int)packet.data[0] == 254) { Console.WriteLine("Got high priority message."); } else if ((DefaultMessageIDTypes)packet.data[0] == DefaultMessageIDTypes.ID_CONNECTION_LOST) { Console.WriteLine("ID_CONNECTION_LOST from {0}", packet.systemAddress.ToString()); } else if ((DefaultMessageIDTypes)packet.data[0] == DefaultMessageIDTypes.ID_NEW_INCOMING_CONNECTION) { Console.WriteLine("ID_NEW_INCOMING_CONNECTION from {0}", packet.systemAddress.ToString()); } else if ((DefaultMessageIDTypes)packet.data[0] == DefaultMessageIDTypes.ID_CONNECTION_REQUEST_ACCEPTED) { start = RakNet.RakNet.GetTimeMS(); Console.WriteLine("ID_CONNECTION_REQUEST_ACCEPTED from {0}", packet.systemAddress.ToString()); } else if ((DefaultMessageIDTypes)packet.data[0] == DefaultMessageIDTypes.ID_CONNECTION_ATTEMPT_FAILED) { Console.WriteLine("ID_CONNECTION_ATTEMPT_FAILED from {0}", packet.systemAddress.ToString()); } client.DeallocatePacket(packet); packet = client.Receive(); } } uint currenttime = RakNet.RakNet.GetTimeMS(); if (currenttime > nextStatTime) { nextStatTime = RakNet.RakNet.GetTimeMS() + 1000; RakNetStatistics rssSender = new RakNetStatistics(); RakNetStatistics rssReceiver = new RakNetStatistics(); string StatText; if (server != null) { ushort i; ushort numSystems = 1; server.GetConnectionList(null, ref numSystems); if (numSystems > 0) { for (i = 0; i < numSystems; i++) { server.GetStatistics(server.GetSystemAddressFromIndex(i), rssSender); RakNet.RakNet.StatisticsToString(rssSender, out StatText, 2); Console.WriteLine("==== System {0} ====", (i + 1).ToString()); Console.WriteLine("{0}", StatText); } } } if (client != null && server == null && client.GetGUIDFromIndex(0) != RakNet.RakNet.UNASSIGNED_RAKNET_GUID) { client.GetStatistics(client.GetSystemAddressFromIndex(0), rssReceiver); RakNet.RakNet.StatisticsToString(rssReceiver, out StatText, 2); Console.WriteLine("{0}", StatText); } } System.Threading.Thread.Sleep(100); } string StatTextEnd = ""; stop = RakNet.RakNet.GetTimeMS(); double seconds = (double)(stop - start) / 1000.0; if (server != null) { RakNetStatistics rssSender2 = server.GetStatistics(server.GetSystemAddressFromIndex(0)); RakNet.RakNet.StatisticsToString(rssSender2, out StatTextEnd, 2); Console.WriteLine("{0}", StatTextEnd); } Console.WriteLine("{0} bytes per second ({1} seconds). Press enter to quit", (int)((double)(BIG_PACKET_SIZE) / seconds), seconds); RakPeerInterface.DestroyInstance(server); RakPeerInterface.DestroyInstance(client); Console.Read(); }
/// <summary> /// Get statistics full /// </summary> public bool GetStatisticsFull(out RakNetStatistics statistics) { return(peer.GetStatisticsFull(0, out statistics)); }
/// <summary> /// Get statistics full on index /// </summary> public bool GetStatisticsFull(uint index, out RakNetStatistics statistics) { return(peer.GetStatisticsFull(index, out statistics)); }
public static extern bool NET_Statistics(IntPtr instance_ptr, uint index, ref RakNetStatistics statistics);
static void Main(string[] args) { RakNetStatistics rss = new RakNetStatistics(); RakPeerInterface client = RakPeerInterface.GetInstance(); Packet p = new Packet(); byte packetIdentifier; bool isServer = false; SystemAddress ClientID = RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS; string ip, serverPort, clientPort; Console.WriteLine("This is a sample implementation of a text based chat client"); Console.WriteLine("Connect to the project 'Chat Example Server'"); Console.WriteLine("Enter the client port to listen on"); clientPort = Console.ReadLine(); if (clientPort.Length == 0) { clientPort = "0"; } Console.WriteLine("Enter the IP to connect to"); ip = Console.ReadLine(); if (ip.Length == 0) { ip = "127.0.0.1"; } Console.WriteLine("Enter the port to connect to"); serverPort = Console.ReadLine(); if (serverPort.Length == 0) { serverPort = "1234"; } SocketDescriptor socketDescriptor = new SocketDescriptor(Convert.ToUInt16(clientPort), "0"); socketDescriptor.socketFamily = AF_INET; client.Startup(8, socketDescriptor, 1); client.SetOccasionalPing(true); ConnectionAttemptResult car = client.Connect(ip, Convert.ToUInt16(serverPort), "Rumpelstiltskin", "Rumpelstiltskin".Length); if (car != RakNet.ConnectionAttemptResult.CONNECTION_ATTEMPT_STARTED) { throw new Exception(); } Console.WriteLine("My IP Addresses:"); for (uint i = 0; i < client.GetNumberOfAddresses(); i++) { Console.WriteLine(client.GetLocalIP(i).ToString()); } Console.WriteLine("My GUID is " + client.GetGuidFromSystemAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS).ToString()); Console.WriteLine("'quit' to quit. 'stat' to show stats. 'ping' to ping.\n'disconnect' to disconnect. 'connect' to reconnnect. Type to talk."); string message; while (true) { System.Threading.Thread.Sleep(30); //Entire networking is threaded if (Console.KeyAvailable) { message = Console.ReadLine(); if (message == "quit") { Console.WriteLine("Quitting"); break; } if (message == "stat") { string message2 = ""; rss = client.GetStatistics(client.GetSystemAddressFromIndex(0)); RakNet.RakNet.StatisticsToString(rss, out message2, 2); Console.WriteLine(message2); continue; } if (message == "disconnect") { Console.WriteLine("Enter index to disconnect: "); string str = Console.ReadLine(); if (str == "") { str = "0"; } uint index = Convert.ToUInt32(str, 16); client.CloseConnection(client.GetSystemAddressFromIndex(index), false); Console.WriteLine("Disconnecting"); continue; } if (message == "shutdown") { client.Shutdown(100); Console.WriteLine("Disconnecting"); continue; } if (message == "ping") { if (client.GetSystemAddressFromIndex(0) != RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS) { client.Ping(client.GetSystemAddressFromIndex(0)); } continue; } if (message == "connect") { Console.WriteLine("Enter the IP to connect to"); ip = Console.ReadLine(); if (ip.Length == 0) { ip = "127.0.0.1"; } Console.WriteLine("Enter the port to connect to"); serverPort = Console.ReadLine(); if (serverPort.Length == 0) { serverPort = "1234"; } ConnectionAttemptResult car2 = client.Connect(ip, Convert.ToUInt16(serverPort), "Rumpelstiltskin", "Rumpelstiltskin".Length); continue; } if (message == "getlastping") { if (client.GetSystemAddressFromIndex(0) != RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS) { Console.WriteLine(client.GetLastPing(client.GetSystemAddressFromIndex(0))); } continue; } if (message.Length > 0) { client.Send(message, message.Length + 1, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, true); } } for (p = client.Receive(); p != null; client.DeallocatePacket(p), p = client.Receive()) { packetIdentifier = GetPacketIdentifier(p); switch ((DefaultMessageIDTypes)packetIdentifier) { case DefaultMessageIDTypes.ID_DISCONNECTION_NOTIFICATION: Console.WriteLine("ID_DISCONNECTION_NOTIFICATION"); break; case DefaultMessageIDTypes.ID_ALREADY_CONNECTED: Console.WriteLine("ID_ALREADY_CONNECTED with guid " + p.guid); break; case DefaultMessageIDTypes.ID_INCOMPATIBLE_PROTOCOL_VERSION: Console.WriteLine("ID_INCOMPATIBLE_PROTOCOL_VERSION "); break; case DefaultMessageIDTypes.ID_REMOTE_DISCONNECTION_NOTIFICATION: Console.WriteLine("ID_REMOTE_DISCONNECTION_NOTIFICATION "); break; case DefaultMessageIDTypes.ID_REMOTE_CONNECTION_LOST: // Server telling the clients of another client disconnecting forcefully. You can manually broadcast this in a peer to peer enviroment if you want. Console.WriteLine("ID_REMOTE_CONNECTION_LOST"); break; case DefaultMessageIDTypes.ID_CONNECTION_BANNED: // Banned from this server Console.WriteLine("We are banned from this server.\n"); break; case DefaultMessageIDTypes.ID_CONNECTION_ATTEMPT_FAILED: Console.WriteLine("Connection attempt failed "); break; case DefaultMessageIDTypes.ID_NO_FREE_INCOMING_CONNECTIONS: Console.WriteLine("Server is full "); break; case DefaultMessageIDTypes.ID_INVALID_PASSWORD: Console.WriteLine("ID_INVALID_PASSWORD\n"); break; case DefaultMessageIDTypes.ID_CONNECTION_LOST: // Couldn't deliver a reliable packet - i.e. the other system was abnormally // terminated Console.WriteLine("ID_CONNECTION_LOST\n"); break; case DefaultMessageIDTypes.ID_CONNECTION_REQUEST_ACCEPTED: // This tells the client they have connected Console.WriteLine("ID_CONNECTION_REQUEST_ACCEPTED to %s " + p.systemAddress.ToString() + "with GUID " + p.guid.ToString()); Console.WriteLine("My external address is:" + client.GetExternalID(p.systemAddress).ToString()); break; case DefaultMessageIDTypes.ID_CONNECTED_PING: case DefaultMessageIDTypes.ID_UNCONNECTED_PING: Console.WriteLine("Ping from " + p.systemAddress.ToString(true)); break; default: Console.WriteLine(System.Text.Encoding.UTF8.GetString(p.data)); break; } } } client.Shutdown(300); RakNet.RakPeerInterface.DestroyInstance(client); Console.Read(); }
static void Main(string[] args) { RakNetStatistics rss = new RakNetStatistics(); RakPeerInterface server = RakPeerInterface.GetInstance(); server.SetIncomingPassword("Rumpelstiltskin", "Rumpelstiltskin".Length); server.SetTimeoutTime(30000, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS); Packet p = new Packet(); RakNet.SystemAddress clientID = RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS; byte packetIdentifier; bool isServer = true; string serverPort; Console.WriteLine("Enter the client port to listen on"); serverPort = Console.ReadLine(); if (serverPort.Length == 0) { serverPort = "1234"; } Console.WriteLine("Starting server"); RakNet.SocketDescriptor socketDescriptors = new SocketDescriptor(Convert.ToUInt16(serverPort), "0"); socketDescriptors.port = Convert.ToUInt16(serverPort); socketDescriptors.socketFamily = AF_INET; StartupResult sar = server.Startup(4, socketDescriptors, 1); if (sar != StartupResult.RAKNET_STARTED) { Console.WriteLine("Error starting server"); } server.SetMaximumIncomingConnections(4); System.Threading.Thread.Sleep(1000); server.SetOccasionalPing(true); server.SetUnreliableTimeout(1000); for (int i = 0; i < server.GetNumberOfAddresses(); i++) { SystemAddress sa = server.GetInternalID(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, i); Console.WriteLine((i + 1).ToString() + ". " + sa.ToString() + "(LAN = " + sa.IsLANAddress() + ")"); } Console.WriteLine("My GUID is " + server.GetGuidFromSystemAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS).ToString()); Console.WriteLine("'quit' to quit. 'stat' to show stats. 'ping' to ping.\n'pingip' to ping an ip address\n'ban' to ban an IP from connecting.\n'kick to kick the first connected player.\nType to talk."); string message; while (true) { System.Threading.Thread.Sleep(30); if (Console.KeyAvailable) { message = Console.ReadLine(); if (message == "quit") { Console.WriteLine("Quitting"); break; } if (message == "kick") { server.CloseConnection(clientID, true, 0); continue; } if (message == "stat") { rss = server.GetStatistics(server.GetSystemAddressFromIndex(0)); RakNet.RakNet.StatisticsToString(rss, out message, 2); Console.WriteLine(message); continue; } if (message == "ping") { server.Ping(clientID); continue; } if (message == "list") { SystemAddress[] systems = new SystemAddress[10]; ushort numCons = 10; server.GetConnectionList(out systems, ref numCons); for (int i = 0; i < numCons; i++) { Console.WriteLine((i + 1).ToString() + ". " + systems[i].ToString(true)); } continue; } if (message == "ban") { Console.WriteLine("'Enter IP to ban. You can use * as a wildcard"); message = Console.ReadLine(); server.AddToBanList(message); Console.WriteLine("IP " + message + " added to ban list."); continue; } string message2; message2 = "Server: " + message; server.Send(message2, message2.Length + 1, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, true); } for (p = server.Receive(); p != null; server.DeallocatePacket(p), p = server.Receive()) { packetIdentifier = GetPacketIdentifier(p); switch ((DefaultMessageIDTypes)packetIdentifier) { case DefaultMessageIDTypes.ID_DISCONNECTION_NOTIFICATION: Console.WriteLine("ID_DISCONNECTION_NOTIFICATION from " + p.systemAddress.ToString(true)); break; case DefaultMessageIDTypes.ID_NEW_INCOMING_CONNECTION: Console.WriteLine("ID_NEW_INCOMING_CONNECTION from " + p.systemAddress.ToString(true) + "with GUID " + p.guid.ToString()); clientID = p.systemAddress; Console.WriteLine("Remote internal IDs: "); for (int index = 0; index < MAXIMUM_NUMBER_OF_INTERNAL_IDS; index++) { SystemAddress internalId = server.GetInternalID(p.systemAddress, index); if (internalId != RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS) { Console.WriteLine((index + 1).ToString() + ". " + internalId.ToString(true)); } } break; case DefaultMessageIDTypes.ID_INCOMPATIBLE_PROTOCOL_VERSION: Console.WriteLine("ID_INCOMPATIBLE_PROTOCOL_VERSION"); break; case DefaultMessageIDTypes.ID_CONNECTED_PING: case DefaultMessageIDTypes.ID_UNCONNECTED_PING: Console.WriteLine("Ping from " + p.systemAddress.ToString(true)); break; case DefaultMessageIDTypes.ID_CONNECTION_LOST: Console.WriteLine("ID_CONNECTION_LOST from " + p.systemAddress.ToString(true)); break; default: Console.WriteLine(System.Text.Encoding.UTF8.GetString(p.data)); message = System.Text.Encoding.UTF8.GetString(p.data); server.Send(message, message.Length + 1, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, true); break; } } } server.Shutdown(300); RakNet.RakPeerInterface.DestroyInstance(server); Console.Read(); }