我有一个DatagramSocket
,UDP数据包从客户端发送到服务器,反之亦然。我必须在回复数据包中包含IP源地址给客户端。有没有办法使用Java获取IP地址?
我补充一些说明 我无法控制UDP客户端,这是一个三方客户端。我只能控制UDP服务器。所以我不能在客户端源代码中使用DatagramPacket.getAddress(),而只能在服务器源代码中使用。 我知道没有必要在数据报包中包含IP地址源,因为源IP地址总是可用于接收器(我认为来自UDP头)但在我的情况下我在客户端和服务器之间有一些握手所以我必须在UDP有效负载数据中包含服务器地址。
CLIENT 192.168.x.x将UDP数据包发送到服务器192.168.255.255:8010 在回复此服务器时应该向客户端发送一个重播datagramPacket,我应该添加服务器地址(es 192.168.y.y)
答案 0 :(得分:1)
回答您的最新问题:
获取服务器"Getting the IP address of the current machine using Java"的IP地址,并将其包含在您发送给客户端的有效负载中。
答案 1 :(得分:0)
我必须在回复数据包中包含IP源地址到客户端
不,不。它已经存在了。客户只需拨打DatagramPacket.getAddress()/getPort()/getSocketAddress()
。
如果这是为了发送回复,那么简单的方法就是重用收到的DatagramPacket
并只更改数据,只保留地址信息。