我正在维护一个由Java GUI和C ++引擎组成的相当大的应用程序。这两个组件目前紧密耦合 - UI将引擎加载为库,并使用JNI传递消息对象。我正在考虑将引擎作为自己的进程分解,这将为任何应用程序通过套接字连接API(对于1个服务器总是只有1个客户端)。
在正常情况下,启动应用程序将包括:
但是有些事情感觉不对 - 有一种竞争条件,即同时启动的两个应用程序可以选择相同的未使用端口(在生成其子进程之前)。我可以解决这个问题,但这让我想知道我是否对这种关系有一些基本的误解和/或应该如何建立连接?
谢谢!