如何在特定端口上搜索响应式套接字服务器(如何在给定端口但没有其ip的情况下连接到服务器)?

时间:2019-06-25 17:24:16

标签: java android sockets networking

通过具有两个(或更多)通过路由器连接的计算机(设备),是否有可能在不知道其IP地址的情况下连接到给定端口上的套接字服务器,或者至少获得该端口上所有服务器的列表端口(并与每个人通信以查看是否是我要的端口)?

我必须补充一点,我是Java套接字编程(和一般的套接字编程)的初学者,并且一直在使用它来初始化我的客户端服务器:

    Socket socket = new Socket(serverIP, serverPort);

我已经能够在通过无线路由器连接的两台不同计算机上的客户端和服务器之间进行通信,并且我正在尝试在两个android设备上实现该功能。问题是IP地址不是仅向用户询问的问题。这就是为什么我想知道如何在我知道的端口上连接服务器而又没有它的IP或找到该端口上所有活动的IP(也许尝试与每个IP通信并查看是否是我正在寻找的IP)的原因

1 个答案:

答案 0 :(得分:0)

我不知道如何使用Java套接字实现它的确切解决方案,但是我的第一个想法是尝试从服务器广播特定消息,并且当客户端连接到同一网络时,他们可以接收到该消息,并且他们会知道它来自哪里。 (反之亦然)

但是,多播是一种更好的方法,因为:

  

“广播效率很低,因为将数据包发送到网络中的所有节点,而不管它们是否有兴趣接收通信。这可能会浪费资源。”参见:https://www.baeldung.com/java-broadcast-multicast

也许该GitHub存储库可能对您有所帮助:https://github.com/jbrucker/server-discovery