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); }
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(); } }