【发布时间】:2013-05-10 08:50:18
【问题描述】:
对于涉及数千个客户端而所有连接都必须保持活动状态的客户端-服务器 (TCP) 应用程序,什么是最佳组件?
到目前为止,我在服务器应用程序中使用了 Indy 和一个 TIdTCPServer,在所有客户端应用程序中使用了一个 TIdTCPClient。我希望客户端和服务器都可以随时发送任何大小的数据。
这是一个好方法吗?
【问题讨论】:
-
某事
related。 -
参见this blog entry about DataSnap concurrent access - 听起来确实像 Indy 不能很好地扩展。如果有第 1000 个客户端,请查看 IOCP/事件驱动服务器,例如 realthinclient.com 或我们的开源 mormot.net
-
@ArnaudBouchez 你有 RTC 使用 IOCP 的参考/指针吗?
-
@mjn 这是他们网站各处的前提。引用:“与大多数其他 Internet 组件不同,RTC 连接组件是非阻塞和事件驱动的。这意味着,即使不使用多线程模式,您的用户也不会在通信过程中被阻塞(“应用程序无响应”)您的客户端和服务器。对于连接中的每个状态更改,都会触发一个事件。也许他们没有使用 IOCP WinAPI,但至少,他们使用了事件驱动的服务器设计,这是唯一一个可以扩展到数千个客户端的设计。
标签: delphi delphi-xe2 indy10