因此,我们有一个服务器具有多个使用多个端口的应用程序。以5729,7614,9231为例。从java中的客户端查找使用的服务器端口
客户端需要连接到这些端口中的一个。所有端口都处于活动状态并等待服务器上的连接,但客户端需要连接的服务器应用程序仅在端口7614上。其他两个端口用于不同的应用程序。
一旦某个活动端口连接,客户端可以在端口ping服务器,并找出它使用什么应用程序(这是已经实现的了解服务器的协议和正常工作)。
的问题是,客户端无法知道正确的端口会是哪个端口是直到它找到它和坪它的方式。服务器应用程序使用的端口不是静态的,并且可能随时更改(而不是我们的代码,因此无法将其固定为静态)。
目前,由于我们不知道什么端口将包含正确的端口号,我们必须通过从0到65525的每个端口递增,尝试连接并ping通连接的端口以确定我们是否连接到正确的应用程序。
这需要永远。有什么办法可以获得正在使用的3个端口的列表吗?也就是说,服务器应用程序调用了新的ServerSocket(端口号)的任何端口?
这必须在java中完成。
编辑客户端需要能够看到服务器当前使用的端口。这个问题的一切都必须在客户端完成。在服务器上使用文件或运行命令不是一个选项。
http://stackoverflow.com/questions/21937533/checking-whether-socket-port-is-available - 我们的问题在某种程度上是类似的,虽然我没有真正的答案... –