在Java的Datagramsocket中获取源的IP地址



i有一个DatagramSocket通过,UDP数据包从客户端发送到服务器,反之亦然。有没有办法使用Java获得IP地址?

我添加了一些澄清我无法控制UDP客户端,这是一个thirt Party客户端。我只能在UDP服务器中控制。因此,我不能在客户量源代码中使用datagrampacket.getAddress(),而仅在服务器源代码中。我知道这不是必须在数据报数据包中包含IP地址源的必要在UDP有效载荷数据中包括服务器地址。

客户端192.168.x.x将UDP数据包发送到服务器192.168.255.255:8010在回复此服务器时,应将其发送回客户端,在Wich中,我应该添加服务器地址(ES 192.168.Y.Y.Y)

回答您更新的问题:
获取服务器的IP地址"使用Java获取当前计算机的IP地址",并将其包含在发送给客户端的有效载荷中。

我必须将IP源地址包含在回复数据包中

不,你不。它已经在那里了。客户只需要致电DatagramPacket.getAddress()/getPort()/getSocketAddress()

如果这目的是为了发送答复,那么简单的方法是重复使用收到的DatagramPacket并更改数据,而仅保留地址信息。

最新更新