gpt4 book ai didi

c# - 使用 ReadLineAsync 进行客户端-服务器通信是否完全可以

转载 作者:可可西里 更新时间:2023-11-01 02:54:10 31 4
gpt4 key购买 nike

我正在尝试实现客户端-服务器通信,它应该支持以换行符结尾的命令。做这样的事情完全可以吗:

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

RunServer();
}

async private Task RunServer()
{
var listener = new TcpListener(IPAddress.Any, 1065);
listener.Start();
while (true)
{
TcpClient client = await listener.AcceptTcpClientAsync();
HandleClient(client);
}
}

async private Task HandleClient(TcpClient client)
{
using (var networkStream = client.GetStream())
using (var reader = new StreamReader(networkStream))
{
var dataFromServer = await reader.ReadLineAsync(); // here
MessageBox.Show("Received \"" + dataFromServer + "\"");
}
}
}

或者我应该使用 AsyncRead 并检查接收到的缓冲区是否包含 '\n' 字符?

它在任何情况下都可以工作吗,即使消息将被分成几个 IP 数据包?

最佳答案

我认为使用 ReadLineAsync 优于 ReadAsync:您正在读取一行,不需要额外的 if 语句,也不需要额外的循环。

关于c# - 使用 ReadLineAsync 进行客户端-服务器通信是否完全可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33393607/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com