Exemplo n.º 1
0
        public async Task SendMessage(TcpMessage tcpMessage)
        {
            await AsyncHelper.RedirectToThreadPool();

            var mesSeqNo = _messageSequenceNumber++;

            Debug.WriteLine($"Sending message with seq_no {mesSeqNo}");

            var encodedMessage = tcpMessage.Encode();

            await TcpService.Send(encodedMessage, tcpMessage.CancellationToken);
        }
Exemplo n.º 2
0
        public async Task Send(byte[] packet)
        {
            if (!tcpClient.Connected)
            {
                throw new InvalidOperationException("Client not connected to server.");
            }

            var tcpMessage = new TcpMessage(sendCounter, packet);

            try
            {
                await sendLock.WaitAsync();

                await tcpClient.GetStream().WriteAsync(tcpMessage.Encode(), 0, tcpMessage.Encode().Length);

                sendCounter++;
            }
            finally
            {
                sendLock.Release();
            }
        }