异步vs同步套接字

时间:2011-06-01 10:55:36

标签: .net sockets asynchronous

我的情况是服务器将有500个并发连接。在响应时间方面哪种方法更快? (异步或同步)背后的原因是什么?

我知道异步套接字就像一个连接列表,然后它会询问每个连接,你有什么要发送或接收的。如果列表很长,那么响应时间可能也会更长。这是对的吗?

2 个答案:

答案 0 :(得分:3)

如果使用同步套接字,那么500个连接将需要500个线程。馊主意。许多线程的调度成本将使监视500个异步套接字的开销相形见绌。

顺便说一下,你不要在每个插座上循环,询问它是否准备好传输。您可以使用异步API,例如select()或I / O完成端口。

答案 1 :(得分:2)

异步套接字将更好地工作。它们在内部使用IOCP,这是处理挂起IO操作的一种非常有效的方法。

如果您有几个套接字,请使用线程,因为它 更容易 。坚持使用异步套接字。