C# Sockets和TcpListener

来源:百度知道 编辑:UC知道 时间:2024/05/27 16:54:18
总是看到如下代码
while(true)
{
Socket ct = server.Accept();
...
}

while(true)
{
Socket ct = listener.AcceptSocket();
}

请问这样是不是很美效率啊,不停地while

你是不是以为while(true)一直不停地循环,来等待客户端socket?

其实不是这样的,Accept(),AcceptSocket(),AcceptTcpClient(),ReceiveXXX() 等这些方法都是同步函数,不是异步的,就是说其实运行到这里,如果没有回应,程序是停在这里的,而不是不停的while循环。那样才是真的很没效率。

当然要一直监听啦。

效率很低,
监听这里建议使用异步server.BeginAccept()

目前这样写比较多,效率上没啥影响