如果我将一个TIdSchedulerOfThreadPool分配给我的IdTCPServer,我仍然会被限制为同时连接的数量吗?
我的IdTCPServer属性是:
ListenQueue : 30
MaxConnections : 0
ReuseSocket rsTrue
Scheduler :MyIdSchedulerOfThreadPool
TerminateWaitTime : 5000
MyIdSchedulerOfThreadPool的属性:
Scheduler: MyIdSchedulerOfThreadPool
MaxThreads = 0
PoolSize = 0
ThreqdPriority = tpNormal
没有编码;我只是将MyIdSchedulerOfThreadPool分配给Scheduler。
答案 0 :(得分:2)
TIdTCPServer.MaxConnections
属性控制一次允许连接多少个并发客户端。
TIdSchedulerOfThread.MaxThreads
属性控制一次允许同时运行的线程数(空闲或其他)。
TIdSchedulerOfThreadPool.PoolSize
属性控制一次允许池中同时有多少空闲线程。
因此,当您分配TIdSchedulerOfThread...
时,最大并发连接数实际上是MaxConnections
和MaxThreads
属性之间的较小值,因为每个客户端连接都需要一个线程来管理它