public void Can_get_GameServerPort()
        {
            var packet = new ConnectToGameServerPacket();

            packet.Deserialize(FakePackets.ConnectToGameServerPacket);

            packet.GameServerPort.Should().Be(2593);
        }
        public void Can_get_GameServerIP()
        {
            var packet = new ConnectToGameServerPacket();

            packet.Deserialize(FakePackets.ConnectToGameServerPacket);

            packet.GameServerIp.Should().BeEquivalentTo(new byte[] { 0x7F, 0x00, 0x00, 0x01 });
        }
        public void Can_set_GameServerPort()
        {
            var packet = new ConnectToGameServerPacket();

            packet.Deserialize(FakePackets.ConnectToGameServerPacket);
            packet.GameServerPort = 0xAABB;

            packet.GameServerPort.Should().Be(0xAABB);
            new byte[] { 0xAA, 0xBB }.Should().BeSubsetOf(packet.RawPacket.Payload);
        }
        public void Can_set_GameServerIp()
        {
            var packet = new ConnectToGameServerPacket();

            packet.Deserialize(FakePackets.ConnectToGameServerPacket);
            var gameServerIp = new byte[] { 0xFF, 0xFE, 0xFD, 0xFC };

            packet.GameServerIp = gameServerIp;

            gameServerIp.Should().BeEquivalentTo(packet.GameServerIp);
            gameServerIp.Should().BeSubsetOf(packet.RawPacket.Payload);
        }
示例#5
0
        private void HandleSelectServerRequest(SelectServerRequest packet)
        {
            if (packet.ChosenServerId == 0)
            {
                var connectPacket = new ConnectToGameServerPacket();
                connectPacket.GameServerIp   = new byte[] { 127, 0, 0, 1 };
                connectPacket.Seed           = connectPacket.GameServerIp;
                connectPacket.GameServerPort = 30000;

                SendToClient(connectPacket.Serialize());
            }
            else
            {
                throw new NotImplementedException($"Unexpected server id {packet.ChosenServerId}, it must be always 0");
            }
        }
示例#6
0
        private void HandleConnectToGameServer(ConnectToGameServerPacket packet)
        {
            lock (serverStreamLock)
            {
                DisconnectFromServer();
                Thread.Sleep(1000);
                serverEndpoint = new IPEndPoint(new IPAddress(packet.GameServerIp), packet.GameServerPort);
                serverStream   = ConnectToServer();
            }

            SendToServer(new Packet(PacketDefinitions.LoginSeed.Id, packet.Seed));

            var loginRequest = new GameServerLoginRequest
            {
                Key         = packet.Seed,
                AccountName = startConfig.AccountName,
                Password    = startConfig.Password
            };

            SendToServer(loginRequest.Serialize());
        }