有数千个客户端参与的客户端 - 服务器(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. c - 具有多个客户端的UDP客户端服务器
- 2. 具有多个客户端的Java服务器客户端
- 3. Java:服务器/客户端 - >客户端/客户端
- 4. 服务器端与客户端端编码的最佳实践
- 5. 处理SSL客户端到服务器到客户端的最佳方式(relay?)
- 6. 具有多个客户端的客户端/服务器体系结构
- 7. 具有多个端口和多个客户端的服务器
- 8. Java客户端服务器/一个线程多个客户端
- 9. 客户端 - 服务器(从服务器到客户端的文件传输)
- 10. 客户端数据到服务器端
- 11. 与服务器同步多个客户端的最佳方法
- 12. asp.net验证客户端或客户端或服务器端
- 13. WCF的服务器/客户端conected客户服务器
- 14. JavaScript中的客户端服务器端
- 15. 客户端或服务器端的ServicePointManager.DefaultConnectionLimit?
- 16. 的NodeJS:客户端到客户端通过服务器
- 17. Java中的服务器客户端:无法启动客户端
- 18. 多客户端C服务器的异步C客户端
- 19. 客户端服务器 - (TCP)
- 20. BufferedReader,客户端/服务器
- 21. JXTA客户端 - 服务器
- 22. 客户端服务器C++
- 23. 服务器客户端iphone
- 24. 服务器和客户端
- 25. 服务器/客户端C#
- 26. Android客户端服务器
- 27. Arduino客户端/服务器
- 28. 服务器客户端java
- 29. Java客户端服务器
- 30. TCP客户端服务器
东西['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