【发布时间】:2011-11-12 03:38:26
【问题描述】:
在什么情况下我们应该使用异步套接字(Tcp 或 Udp)服务器而不是同步套接字服务器?
如果它在客户端,我知道我们曾经使用异步,这样它就不会阻塞 UI 线程..但我不确定为什么我们需要在服务器端使用异步..
【问题讨论】:
-
在没有任何线程的情况下使用
sync socket server,并逐个处理传入的请求
在什么情况下我们应该使用异步套接字(Tcp 或 Udp)服务器而不是同步套接字服务器?
如果它在客户端,我知道我们曾经使用异步,这样它就不会阻塞 UI 线程..但我不确定为什么我们需要在服务器端使用异步..
【问题讨论】:
sync socket server,并逐个处理传入的请求
在服务器端,允许客户端并行处理很重要。如果您正在处理一个客户端的大型请求,您不希望第二个客户端的连接请求超时。这并不意味着您必须 使用异步方法。您可以轻松地为每个连接的客户端创建一个单独的线程,并在主线程中同步接受新客户端(对于 Udp,您可以使用队列来处理来自 ThreadPool 的线程中的每个消息)。
异步套接字方法已经处理了并行性(也通过使用单独的线程),因此它是保持服务器平稳运行的好方法。
【讨论】: