Esempio n. 1
0
        public Packet ReadPacket()
        {
            var buffer = packetsComposer.GetBuffer();

            while (!isAlive && !IsAlive)
            {
                Connect().GetAwaiter().GetResult();
            }

            var read = tcpClient.GetStream().Read(buffer, 0, buffer.Length);

            if (read == 0 && !IsAlive)
            {
                commandRaiser.RaiseCommand(new DisconnectPayload("Connection closed")).GetAwaiter().GetResult();
                throw new OperationCanceledException();
            }

            return(packetsComposer.GetPacket(buffer));
        }
Esempio n. 2
0
        public async Task <IPacket> Receive()
        {
            var buffer = await packetsComposer.GetBuffer();

            while (!isConnected && !IsConnected)
            {
                await Connect().ConfigureAwait(false);
            }

            await tcpClient.GetStream().ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            return(await packetsComposer.GetPacket(buffer).ConfigureAwait(false));
        }