//Stage 1 -> Get reminder from player, that they are still connected -> send a ping packet, with player's ping and latencyID internal static void PlayerStillConnectedTCP(byte clientID, Packet packet) { try { PlayerServer player = Server.ClientDictionary[clientID].Player; player.LastPacketReceivedTCP(DateTime.Now.TimeOfDay); ServerSend.PlayerConnectedAcknAndPingTCP(clientID, player.Latency2WayMSTCP, player.GetLatencyIDTCP()); } catch (Exception e) { OutputPacketError(clientID, e); } }
//Stage 2 internal static void PlayerPingAckTCP(byte clientID, Packet packet) { try { byte latencyIDTCP = packet.ReadByte(); PlayerServer player = Server.ClientDictionary[clientID].Player; player.LastPacketReceivedTCP(DateTime.Now.TimeOfDay); player.PingAckTCP(latencyIDTCP); } catch (Exception e) { OutputPacketError(clientID, e); } }