gpt4 book ai didi

delphi - 同一应用程序上的多个 TIdCmdTCPServers

转载 作者:可可西里 更新时间:2023-11-01 02:45:58 26 4
gpt4 key购买 nike

我正在开发一个包含许多客户端请求的服务器。根据请求的类型,我想为每种类型的请求使用单独的 TIdCmdTCPServer

事实上,它是一个会计软件,我想用一个单独的 TIdCmdTCPServer 将每个服务分开,例如一个用于会计,另一个用于库存,等等。

每个 TIdCmdTCPServer 都有自己的一组命令处理程序,并将监听自己的端口,但所有这些都将在同一 IP 上激活并在同一应用程序中运行。

这种方法的缺点是什么?

我可以使用由所有 TIdCmdTCPServer 共享的单个 TSchedulerThreadPool 吗?或者我应该为每个使用单独的 TSchedulerThreadPool 吗?

最佳答案

您的提议没有任何问题。主要缺点是使用更多的系统资源在内存中维护多个服务器,并使用多个端口(这是一种有限的资源)。但除了用于代码组织目的之外,与仅使用单个端口并定义协议(protocol)以公开客户端可以选择的多个命令子集相比,并没有真正的优势。

至少,单个 TIdCmdTCPServer 可以通过其 Bindings 集合监听多个端口,并且您的命令处理程序可以查看每个请求来自哪个端口,如果需要。或者,您可以切换到标准的 TIdTCPServer 并使用多个手动 TIdCommandHandlers 集合,每个绑定(bind)一个。

不,您不能在多个服务器之间共享调度程序。每个服务器都需要自己的调度程序。但是具有多个绑定(bind)的单个服务器只需要一个调度程序。

关于delphi - 同一应用程序上的多个 TIdCmdTCPServers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54171293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com