有多少客户可以同时连接到TidTCPServer
?我使用Indy10,DelphiXE2和目标操作系统是Windows Server 2003。
是否有更好的选择而不是Indy for delphi?
答案 0 :(得分:3)
默认情况下,MaxConnections设置为0,因此在接受另一个连接之前,Indy服务器不会检查活动线程的数量,但这主要取决于客户端在服务器上执行的操作。例如,如果您的服务器接受客户端连接,然后在该客户端线程上下文中计算饼图到万亿个数字,那么与将您的工作交给另一个进程相比,您处理的连接数要少得多。基本上,您的结果将直接根据执行的任务而有所不同。
对于通用答案...如果覆盖分配给每个线程的默认堆栈大小,则在32位服务器应用程序中最多可以有几千个连接,但可能不会多于此。请参阅:What's the maximum number of threads in Windows Server 2003?和http://www.deltics.co.nz/blog/?p=1330
同时检查ListenQueue属性,默认设置为15。显然操作系统可以自己进一步增加...我不知道当前的Windows Server默认侦听队列,但我通常会略微提高默认值。
底线 - 获得一千个活跃的线程/连接,你可能会很快就会碰壁。
答案 1 :(得分:2)
然而,操作系统可以使用可用资源处理许多客户端。请记住,每个连接的客户端都使用自己的线程,因此您必须在进程的默认线程大小中出厂。