- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在开发一个包含许多客户端请求的服务器。根据请求的类型,我想为每种类型的请求使用单独的 TIdCmdTCPServer
。
事实上,它是一个会计软件,我想用一个单独的 TIdCmdTCPServer
将每个服务分开,例如一个用于会计,另一个用于库存,等等。
每个 TIdCmdTCPServer
都有自己的一组命令处理程序,并将监听自己的端口,但所有这些都将在同一 IP 上激活并在同一应用程序中运行。
这种方法的缺点是什么?
我可以使用由所有 TIdCmdTCPServer
共享的单个 TSchedulerThreadPool
吗?或者我应该为每个使用单独的 TSchedulerThreadPool
吗?
最佳答案
您的提议没有任何问题。主要缺点是使用更多的系统资源在内存中维护多个服务器,并使用多个端口(这是一种有限的资源)。但除了用于代码组织目的之外,与仅使用单个端口并定义协议(protocol)以公开客户端可以选择的多个命令子集相比,并没有真正的优势。
至少,单个 TIdCmdTCPServer
可以通过其 Bindings
集合监听多个端口,并且您的命令处理程序可以查看每个请求来自哪个端口,如果需要。或者,您可以切换到标准的 TIdTCPServer
并使用多个手动 TIdCommandHandlers
集合,每个绑定(bind)一个。
不,您不能在多个服务器之间共享调度程序。每个服务器都需要自己的调度程序。但是具有多个绑定(bind)的单个服务器只需要一个调度程序。
关于delphi - 同一应用程序上的多个 TIdCmdTCPServers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54171293/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
所以我正在开发一个黑 jack 程序,但我有点卡住了。我会警告大家,我对编程真的很陌生,而且,我正在项目中期......所以有一些松散的结局和未使用的变量,以及一些不必要的逻辑(用于测试),但这就是我
我正在尝试创建一个可用作 OpenGL 测试工具的示例程序。到目前为止,我的那个似乎可以工作,但似乎忽略了通过统一变量 MVPMatrix 传递的 MVP 矩阵。当我添加代码以读回制服并检查它是否确实
感谢您帮助我,这是有关我的代码的部分。 printf("Thank you, now please enter the logic gate"); scanf("%s", &C); if (C ==
public static void ejemplosString(String palabra){ char[] letras = palabra.toCharArray();
所以,我有一个 php 应用程序,通过 cgi 和 nginx 运行。我有一个 .jar 程序,用于在条形码打印机(Zebra)上打印条形码,猜猜看是什么!。 我的 php 应用程序使用 exec()
我遇到的唯一问题是 getAll() 方法,它似乎在 PersonnelController 类中的位置立即运行。我也曾在其他很多地方尝试过,但都没有成功。 setAll() 方法看起来不错,我已经测
我是一名优秀的程序员,十分优秀!