有数千个客户端参与的客户端 - 服务器(TCP)应用程序的最佳组件,而所有连接必须保持活动状态?
到目前为止,我已使用Indy在服务器应用程序中有一个TIdTCPServer
,在所有客户端应用程序中都有一个TIdTCPClient
。我希望客户端和服务器随时随地发送数据。
这是一个好方法吗?具有数千个客户端的客户端 - 服务器的最佳组件
回答
它可能工作,但它可能最终会带来很多问题,这取决于什么样的数据,负载,安全性等。我最终使用了一个Web服务器(Tomcat + Comet)。这项工作已经完成:套接字稳定性,框架,安全性,跨多个实例的负载分担等... 成千上万的客户端并不那么容易处理......然后您可以专注于您的应用程序,并且只关注它。
+1,Java(Netty,Servlets)在http://www.techempower.com/blog/2013/04/05/frameworks-round-2/ – mjn 2013-05-10 10:19:12
排名第一.AFAIK Indy没有实现IOCP,所以会创建每个客户端连接一个线程。所以它将无法处理数千个客户端,而不会触发Out Of Memory错误。这里需要IOCP/EventDriven服务器,而Indy不具备这种架构。 @mjn Java服务器超出了范围,在这个问题的背景下,我很害怕。只需比较“hello world”JSON请求背后的内存消耗。 :) – 2013-05-10 12:45:43
@ArnaudBouchez:客户端将只消耗1个线程...因为它是客户端;)。在服务器端,我不会使用indy也不使用Delphi来构建服务器(为什么我会重建轮子?)。 – 2013-05-10 12:52:51
- 1. 具有多个客户端的Java服务器客户端
- 2. 具有多个客户端的客户端/服务器体系结构
- 3. Java客户端服务器 - 客户端的多事件处理
- 4. Java客户端服务器/一个线程多个客户端
- 5. 客户端 - 服务器(从服务器到客户端的文件传输)
- 6. 客户端数据到服务器端
- 7. 与服务器同步多个客户端的最佳方法
- 8. asp.net验证客户端或客户端或服务器端
- 9. JavaScript中的客户端服务器端
- 10. 客户端或服务器端的ServicePointManager.DefaultConnectionLimit?
- 11. 服务器/客户端C#
- 12. TCP客户端服务器
- 13. 客户端服务器 - (TCP)
- 14. Android客户端服务器
- 15. 服务器客户端java
- 16. 客户端服务器C++
- 17. 服务器客户端iphone
- 18. JXTA客户端 - 服务器
- 19. 服务器和客户端
- 20. 的Http从客户端加密到服务器和服务器到客户端
- 21. WCF服务器/客户端回调,从客户端到服务器的回复
- 22. Java中客户端服务器通信的最佳方式
- 23. 最佳Python支持的服务器/客户端协议?
- 24. 单客户端服务器的最佳实践?
- 25. 最佳Java支持的服务器/客户端协议?
- 26. 在C#中创建客户端/服务器聊天客户端
- 27. 客户端服务器通信受阻于客户端
- 28. Tcp客户端/服务器 - 客户端消息问题
- 29. 实时服务器vs客户端到客户端?
- 30. 客户端到服务器端调用
东西['related'](http://stackoverflow.com/q/15924616/960757)。 – TLama 2013-05-10 09:42:00
另请参见[可扩展的Delphi TCP服务器实现](http://stackoverflow.com/questions/7150093/scalable-delphi-tcp-server-implementation) – mjn 2013-05-10 10:15:27
请参阅[本博客条目有关DataSnap并发访问](http:// robertocschneiders .wordpress.com/2012/11/22 /基于datasnap-analysis-on-speed-stability-tests /) - 听起来的确如果Indy的扩展性不好。使用第1000个客户端时,请参考IOCP /事件驱动的服务器,如http://www.realthinclient.com/或我们的开源http://mormot.net – 2013-05-10 11:53:15