Java - 如何检索局域网上已知端口的服务器IP

标签 java client datagram

我似乎找不到一种方法来检索具有已知端口号的服务器 IP。我尝试过测试每个 IP,但速度太慢了。我在网上读到一些有关用于广播信息的数据报的内容,但我似乎无法理解如何使用它们。总而言之,我试图让聊天客户端连接到具有动态IP的服务器。但问题是,当 IP 更改时,客户端无法连接,因此我试图找出一种在端口上获取广播的方法,并且使用该端口的任何客户端都可以从广播中获取 IP? ...有什么想法吗???

更新:提前...我已经知道如何检索服务器的IP。我只需要能够在没有客户端连接的套接字上广播该 IP,因此客户端可以从广播中检索 IP,然后连接到服务器

最佳答案

步骤如下:创建一个 UDP 套接字,在该套接字上设置 SO_BROADCAST 选项,将服务器的 IP 地址放入消息中,然后通过调用 sendto() 以 255.255.255.255 作为目标来广播该消息。当然,您还需要一个公共(public)端口号,所有客户端都需要绑定(bind)该端口号,以便它们可以接收广播消息。

关于Java - 如何检索局域网上已知端口的服务器IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538050/

相关文章:

python - 如何在没有网络的情况下通过 wifi 发送原始数据包?

android - 在android中具有固定数据报包长度的数据报套接字中的音频流质量不好

java - 如何根据项目的主序列列表对一小部分项目进行排序?

c - 在 C 中为运行时安全地存储密码

java - 如果客户端除了起始 url 之外不应该有任何先验知识,你如何构建 REST 客户端?

java - 通过Java发送UDP数据包

java - 没有定义名为 'transactionManager' 的 bean

java - Android Studio-通过HTTP连接到服务器的IP和端口

Netbeans 中的 Java FX 编辑器

php - 如何将 PHP session 与 REST 客户端应用程序一起使用?