private void HandleGameServerHandshakeRequestUDP(GameServerHandshakeRequestUDP mess, IPEndPoint remoteEndPoint) { foreach (var conn in GameClientConnections) if (conn.ConnectionStatus.ClientKey != null && conn.ConnectionStatus.ClientKey.SequenceEqual(mess.GameClientKey)) if (conn.RemoteUDPEndPoint == null) conn.RemoteUDPEndPoint = remoteEndPoint; }
private void HandleConnectionHandshakingOnClient() { if (!IsConnectedToGameServer) return; if (GameServerConnection.PreviousHandshakeAttempt == TimeSpan.Zero) GameServerConnection.FirstHandshakeAttempt = GameServerConnection.PreviousHandshakeAttempt = Game.GameTime.TotalRealTime; if (Game.GameTime.TotalRealTime > GameServerConnection.FirstHandshakeAttempt + HANDSHAKE_TIMEOUT) return; if (Game.GameTime.TotalRealTime > GameServerConnection.PreviousHandshakeAttempt + HANDSHAKE_ATTEMPT_INTERVAL) { GameServerConnection.PreviousHandshakeAttempt = Game.GameTime.TotalRealTime; var handshake = new GameServerHandshakeRequestUDP { GameClientKey = GetAssaultWingInstanceKey() }; GameServerConnection.Send(handshake); } }