我需要在一台机器上让多个进程相互协调,以便每个进程选择不同的端口来创建套接字以与不同的机器通信。每个进程必须从一系列可用端口中选择一个端口号,以便在任何时间点只有一个进程使用给定的端口号。
是否有现有的机制来进行这种协调,还是我需要建立自己的机制?
目前,我正在使用磁盘上的文件来注册端口号和使用该端口的 PID。如果找到一个不再运行 PID 的条目,则删除该条目,因为假定进程已非正常退出,因此需要获取该条目。
但是,我似乎有某种竞争条件,因为在极少数情况下,我最终有两个进程使用相同的端口,而第二个进程看不到显示保留端口的文件内容并最终再次使用它。
与其解决这个问题,我宁愿采用现有的机制来避免端口冲突,所以我想问这样的实用程序是否已经存在。