private void CheckForResend() { if (Networking.NetTime - _connectTime < Program.ClResend) { return; } var serverEp = (EndPoint) new IPEndPoint(IPAddress.Any, 0); if (!Networking.StringToAddr(_retryAddress, ref serverEp)) { Console.WriteLine("Bad server address ({0})!\n", serverEp); Disconnect(); return; } // only retry so many times before failure if (_retryNumber >= Networking.ConnectionRetries) { Console.WriteLine("Connection failed after {0} retries.\n", Networking.ConnectionRetries); Disconnect(); return; } _connectTime = (float)Networking.NetTime; if (_retryNumber == 0) { Console.WriteLine("Connecting to {0} ...", serverEp); } else { Console.WriteLine("Retrying {0} ...", serverEp); } _retryNumber++; Networking.OutOfBandPrintf(_socket, serverEp, "{0}00000000000000", (char)EConnectionType.GetChallenge); }
private void SendConnectPacket(int challengeNr, int authProtocol) { var serverEp = (EndPoint) new IPEndPoint(IPAddress.Any, 0); if (!Networking.StringToAddr(_retryAddress, ref serverEp)) { Console.WriteLine("Bad server address ({0})!\n", serverEp); Disconnect(); return; } var msg = new BufferWrite(); msg.WriteBytes(NetProtocol.ConnectionlessHeader); msg.WriteChar((char)EConnectionType.PlayerConnect); msg.WriteInt(Program.ProtocolVersion); msg.WriteInt(authProtocol); msg.WriteInt(challengeNr); msg.WriteString(Program.ClientName); msg.WriteString(Program.ServerPassword); Networking.SendPacket(null, _socket, serverEp, msg.GetData()); }