在Windows上的多线程应用程序中非阻塞服务器/监听套接字的最佳方法?
|
我正在Windows上编写TCP服务器/客户端应用程序,以熟悉Winsock API。我来自UNIX,并且想知道以下哪一种是实现应用程序的最佳方法:
首先规格
必须在多处理器和单处理器系统上很好地扩展。
没有硬性限制的连接。
应用程序既可以侦听连接,也可以充当服务器,也可以充当客户端。
多线程。
第一种方法:
在\'server \'线程中进行侦听的非阻塞类选择套接字。
对于每个连接的客户端,我们产生一个单独的线程。
第二种方法:
在\'server \'线程中阻塞监听套接字。
对于每个连接的客户端,我们产生一个单独的线程。
第三种方法:
在\'server \'线程中进行侦听的非阻塞类选择套接字。
对于每个传入连接,没有单独的线程,该协议需要在我假设的各个会话之间保存状态信息。
我想知道什么是最有效和可扩展的方法,尤其是它是否也可以与UDP套接字一起使用。
注意:我正在用普通C和旧C编写应用程序。不涉及.NET和C ++,也禁用了C ++异常。
没有找到相关结果
已邀请:
3 个回复
究补闯
程琶
。
穗揣