异步TCP写入流不适用于等待

时间:2015-08-10 04:12:52

标签: c# sockets asynchronous tcp

我试图让一些异步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");    

我做错了什么?

0 个答案:

没有答案