Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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());
        }