我正在使用服务器中的System.Net.Sockets.TcpListener tcpl
,System.Net.Sockets.NetworkStream ns
和System.Net.Sockets.TcpClient echoserver;
制作客户端服务器应用程序,并使用此代码来保持应用程序响应:
while (!tcpl.Pending())
Application.DoEvents();
echoserver = tcpl.AcceptTcpClient();
ns = echoserver.GetStream();
using (MemoryStream ms = new MemoryStream())
{
while ((i = ns.Read(recivedbytes, 0, recivedbytes.Length)) != 0)
{
ms.Write(recivedbytes, 0, i);
}
}
我正在等待客户端,但这会对处理器造成太大负担。在不增加处理器负载的情况下,还有其他逻辑吗?
答案 0 :(得分:2)
在
while (!tcpl.Pending())
Application.DoEvents();
echoserver = tcpl.AcceptTcpClient();
while
- 语句实际上是多余的,因为AcceptTcpCLient()
是一种阻塞方法。如果您希望自己的用户界面具有响应能力,请为TcpListener
创建一个主题,然后使用AcceptTcpClient()
等待传入请求。
有关详细信息,请参阅MSDN。