c# - 等待来自服务器 .net Tcp 的数据
问题描述
我有 Tcp 客户端-服务器应用程序。客户端将数据写入流,并等待来自服务器的数据。
但是服务器的工作时间接近 10-15 秒,那么客户端如何更好地等待来自服务器的数据呢?在后台线程中放置一些“服务员”方法或让客户端休眠一段时间?
客户:
client.Connect(ip, serverPort);
Thread.Sleep(500);
using (NetworkStream stream = client.GetStream())
{
XmlSerializer xmlSerializer = new XmlSerializer(user.GetType());
xmlSerializer.Serialize(stream, user);
Thread.Sleep(250);
//WaitSignal(client);
}
服务器:
TcpListener listener = new TcpListener(ip, serverPort);
string msg = "Hello;"
listener.Start();
while (true)
{
Console.WriteLine("Wait...");
TcpClient client = listener.AcceptTcpClient();
using (NetworkStream stream = client.GetStream())
{
//read bytes from stream and do some work
byte[] data = Encoding.ASCII.GetBytes(msg);
stream.Write(data, 0, data.Length);
}
}
解决方案
推荐阅读
- linux - 如何在 ftrace/trace-cmd 中获取“}”之后的函数名
- kubernetes - 无法将日志发送到 Graylog kubernetes
- sql-server - 为什么 SQL 内连接称为内连接,外连接称为外连接?
- java - 使用 Android 的媒体播放器处理播放声音
- javascript - 如何修复由内联中断引起的“无效或意外令牌”?
- python - ImportError:无法导入名称“RandomizedLogisticRegression”
- java - 在 nativescript 中编写 java 文件以使用本地 java lib
- html - CSS 和 Bootstrap:创建一条连接行的线
- react-native - 无法使用 react-native-calendars
- ubuntu - 在 Ubuntu 19.04 上安装 Redis-Commander 作为服务