我试图让一些异步TCP内容继续下去。在这里,我只是使用方法Send()从服务器向客户端发送数据。它发送正常,但我似乎没有使用await修饰符。事实上,当我使用它时,我的第二条消息实际上并不通过TCP套接字发送,尽管它确实调用了它的方法。
向客户发送消息
private async Task Send(TcpClient client, CancellationToken ct, string message) {
Console.WriteLine("Sending Message " + message);
message += "<EOF>";
using (client) {
NetworkStream stream = client.GetStream();
byte[] msg = Encoding.ASCII.GetBytes(message);
await stream.WriteAsync(msg, 0, msg.Length, ct).ConfigureAwait(false);
}
}
如果我这样做,两条消息都会转发到客户端
Send(tcpClient, ct, "Message1");
Send(tcpClient, ct, "Message2");
如果我使用await,则发送fire(至少调用Console.WriteLine),但只有Message1出现在我的客户端上。
await Send(tcpClient, ct, "Message1");
await Send(tcpClient, ct, "Message2");
我做错了什么?