Exemplo n.º 1
0
 public void SendData(Packet packet)
 {
     try {
         if (socket != null)
         {
             stream.BeginWrite(packet.ToArray(), 0,
                               packet.Length(), null, null);
         }
     } catch (Exception exception) {
         Console.WriteLine($"Error sending TCP data to client {id} -- Error:\n{exception}");
     }
 }
Exemplo n.º 2
0
            public void HandleData(Packet packetData)
            {
                int packetLength = packetData.ReadPacketLength();

                byte[] packetBytes = packetData.ReadBytes(packetLength);

                ThreadManager.ExecuteOnMainThread(() => {
                    using Packet packet = new Packet(packetBytes);
                    int packetId        = packet.ReadInt();
                    Server.packetHandlers[packetId](id, packet);
                });
            }
Exemplo n.º 3
0
            public void Connect(TcpClient clientSocket)
            {
                socket = clientSocket;

                clientSocket.ReceiveBufferSize = DATA_BUFFER_SIZE;
                clientSocket.SendBufferSize    = DATA_BUFFER_SIZE;
                Console.WriteLine("Sending welcome message");

                stream = clientSocket.GetStream();

                receivedData   = new Packet();
                receiverBuffer = new byte[DATA_BUFFER_SIZE];
                stream.BeginRead(receiverBuffer, 0, DATA_BUFFER_SIZE, ReceiveCallBack, null);
                ServerSend.Welcome(id, "Welcome to the server!");
            }
Exemplo n.º 4
0
            private bool HandleData(byte[] data)
            {
                Console.WriteLine("Are we handling data");
                int packetLength = 0;

                receivedData.SetBytes(data);
                if (receivedData.UnreadLength() > 4)
                {
                    packetLength = receivedData.ReadInt();
                    if (packetLength <= 0)
                    {
                        return(true);
                    }
                }

                while (packetLength > 0 && packetLength <= receivedData.UnreadLength())
                {
                    byte[] packetBytes = receivedData.ReadBytes(packetLength);
                    ThreadManager.ExecuteOnMainThread(() => {
                        using Packet packet = new Packet(packetBytes);
                        int packetId        = packet.ReadInt();
                        Server.packetHandlers[packetId](id, packet);
                    });
                    packetLength = 0;
                    if (receivedData.UnreadLength() <= 4)
                    {
                        continue;
                    }
                    packetLength = receivedData.ReadInt();
                    if (packetLength <= 0)
                    {
                        return(true);
                    }
                }
                return(packetLength <= 1);
            }
Exemplo n.º 5
0
 public void SendData(Packet packet)
 {
     Server.SendUdpData(endPoint, packet);
 }