1

我正在做一个项目,我有一个客户端需要打开到多个服务器(100)的 Telnet 会话并等待消息。消息很小(< 80 字节)并且会随机出现。

我读过通过为每个“服务器”创建一个线程来做到这一点是不好的形式。我正在寻找有关使用 TCPClient、Winsock 或 Catalyst 或 ??? 处理多个站点的最佳方法的建议

谢谢您的帮助 !

加里·M

4

1 回答 1

1

由于它是 Windows 平台,因此有很多选择。您可以使用 Winsock选择函数,或 WSAPoll,或WSAAsyncSelect,或完成端口。

select/WSAPoll 的工作方式几乎与 Posix 中的一样,并且有很多示例,以及一些关于如何使用这些示例的现成库。

WSAAsyncSelect将事件发送到 UI 线程(你需要有窗口)。如果您的应用程序有一个窗口,这可能是最简单的选项,因为所有活动都将发生在窗口线程中,并且库负责事件序列化。

也看看(重要的是你有超过 64 个连接): http: //msdn.microsoft.com/en-us/library/windows/desktop/ms739169 (v=vs.85).aspx

使用 Windows 完成端口: http: //msdn.microsoft.com/en-us/magazine/cc302334.aspx http://msdn.microsoft.com/en-us/magazine/ms810436.aspx

于 2013-03-13T10:47:00.357 回答