Exemplo n.º 1
0
        public override void WritePacket(ProtocolPacket packet)
        {
            MemoryStream stm = new MemoryStream();

            BinaryNetworkTransport.WritePacket(packet, new BinaryWriter(stm), false);
            byte[] data = stm.ToArray();
            _client.SendAsync(data, data.Length, _endpoint).GetAwaiter().GetResult();
        }
Exemplo n.º 2
0
        public async override Task <ProtocolPacket> ReadPacket()
        {
            UdpReceiveResult result = await _client.ReceiveAsync();

            MemoryStream stm = new MemoryStream(result.Buffer);

            return(BinaryNetworkTransport.ReadPacket(new BinaryReader(stm), result.Buffer.Length - 4));
        }
Exemplo n.º 3
0
 public bool WritePacket(ProtocolPacket packet)
 {
     try
     {
         MemoryStream stm = new MemoryStream();
         BinaryNetworkTransport.WritePacket(packet, new BinaryWriter(stm), false);
         byte[] data = stm.ToArray();
         return(_listener._client.SendAsync(data, data.Length, _endpoint).GetAwaiter().GetResult() == data.Length);
     }
     catch (Exception)
     {
         Cancel();
         return(false);
     }
 }
Exemplo n.º 4
0
        static async Task <bool> WriteUdpPacket(UdpClient client, IPEndPoint endpoint, ProtocolPacket packet)
        {
            try
            {
                MemoryStream stm = new MemoryStream();
                BinaryNetworkTransport.WritePacket(packet, new BinaryWriter(stm), false);
                byte[] data = stm.ToArray();

                int ret = await client.SendAsync(data, data.Length, endpoint);

                return(ret == data.Length);
            }
            catch
            {
                return(false);
            }
        }
Exemplo n.º 5
0
            public async Task <ReadPacketState> ReadPacketAsync()
            {
                try
                {
                    await _semaphore.WaitAsync(_cancel_source.Token);

                    byte[] data;
                    lock (_queue)
                    {
                        data         = _queue.Dequeue();
                        LastPingTime = null;
                    }

                    MemoryStream stm = new MemoryStream(data);
                    return(new ReadPacketState(this,
                                               BinaryNetworkTransport.ReadPacket(new BinaryReader(stm), data.Length - 4), null));
                }
                catch (Exception ex)
                {
                    return(new ReadPacketState(this, null, ex));
                }
            }