Exemple #1
0
        private void DataReceived(IAsyncResult ar)
        {
            IPEndPoint endpoint = null;

            byte[]       bytes    = client.EndReceive(ar, ref endpoint);
            XyzMessage[] messages = new XyzMessageDecoder(bytes).Decode();

            client.BeginReceive(DataReceived, client);

            on_Message?.Invoke(endpoint, XyzUtils.Inflate(messages[0].Bytes), messages[0].Type);
        }
Exemple #2
0
        public async Task Receiver()
        {
            try
            {
                byte[] header = await ReadBytes(5);

                int length = BitConverter.ToInt32(header, 0);
                int type   = header[4];

                byte[] message_bytes = await ReadBytes(length);

                this.OnMessage?.Invoke(XyzUtils.Inflate(message_bytes), type);
            }
            catch (Exception)
            {
                Disconnect(true);
            }

            if (client.Connected && !disconnected)
            {
                await Receiver();
            }
        }