-1

我正在使用 Delphi 我有一个设备。设备有以太网卡。我给设备一个 IP 地址和端口(服务器 IP 地址)。设备每秒使用 tcp/ip 向服务器发送数据。

我必须从服务器监听设备。我有 1200 台设备从一台服务器监听 1200 台设备的最佳方式是什么?(多线程或其他方式)

4

2 回答 2

3

事件驱动的服务器是这里的要求。

忘记 Indy,使用事件驱动(也称为 I/O 完成)IP 服务器。

对于 32 位,Windows 限制约为 2000 个线程,因为每个线程保留 2 MB 的堆栈空间,AFAIR。像 Indy 这样的服务器每个连接都会使用一个线程,所以这只会浪费资源。

按照设计,I/O 完成允许将所有传入请求平衡到一个小线程池。请参阅Delphi 是否有基于 I/O 完成端口的组件?可扩展的 Delphi TCP 服务器实现

于 2013-04-10T14:00:12.577 回答
2

查看ICS,它是一个 Internet 库,可让您管理来自单个线程的多个连接。非常适合您的目的。

于 2013-04-10T13:10:58.207 回答