Esempio n. 1
0
        private void ClientSocket_ConnectCompleted(object sender, TcpCompletedEventArgs e)
        {
            if (!e.Error)
            {
                Console.WriteLine($"Connected to {(IPEndPoint)e.Data}");
                PacketProtocol = new PacketProtocol(ClientSocket);
                PacketProtocol.PacketArrived += PacketProtocol_PacketArrived;
                PacketProtocol.Start();

                Console.WriteLine("Sending client info...");

                PacketProtocol.SendPacket(ClientSocket, new Packet
                {
                    Content = World.LocalPlayer,
                    Type    = PacketType.PLAYER_INFO
                });

                World.AddPlayer(World.LocalPlayer);

                ConnectedToServer?.Invoke(ClientSocket.RemoteEndPoint.ToString(), World.LocalPlayer.Name);

                _connected = true;
            }
            else
            {
                CriticalErrorOccured($"Произошла критическая ошибка!\n{((Exception)e.Data).Message}");
            }
        }
Esempio n. 2
0
        private void ServerSocket_AcceptCompleted(object sender, TcpCompletedEventArgs e)
        {
            ServerSocket.ClientAcceptAsync();

            var client = (GameTcpServerConnection)e.Data;


            var protocol = new PacketProtocol(client);
            var context  = new ClientContext();

            context.PacketProtocol = protocol;
            context.Connected      = true;

            clients.Add(client, context);

            protocol.PacketArrived += Protocol_PacketArrived;
            //client.SendCompleted += Client_SendCompleted;

            protocol.Start();

            Console.WriteLine($"Client {client.RemoteEndPoint} connected to server.");
        }