Esempio n. 1
0
        private void PacketRecieved(IAsyncResult ar) // Function that is being called whenever client recieves data from server
        {
            Socket Client = (Socket)ar.AsyncState;
            int    received;

            try
            {
                received = Client.EndReceive(ar);
            }
            catch (SocketException)
            {
                Log("Client forcefully disconnected", ConsoleColor.Red, ConsoleColor.Gray);
                Client.Close();
                return;
            }

            byte[] recBuf = new byte[received];
            Array.Copy(buffer, recBuf, received);

            if (received == 0)
            {
                Log("Lost Connection To The Server", ConsoleColor.Red, ConsoleColor.Gray);
                return;
            }

            PacketReader pr     = new PacketReader(recBuf);
            Packet       packet = Packet.Create(recBuf);

            FirePackedRecieved(Client, packet);

            Client.BeginReceive(buffer, 0, BUFFER_SIZE, SocketFlags.None, PacketRecieved, Client); // Read incoming packet again
        }