在网络上进行了很多搜索,但是似乎无法让我知道Java中接收到的数据报包的目标地址。
我的Java UDP服务器在多接口主机(大多数是虚拟接口)上运行,因此,当服务器接收到数据包时,我需要获取数据包的目标地址,并以此来创建套接字。绑定到该特定接收地址,然后使用它发送响应。
socket = new DatagramSocket(12345);
socket.receve(packet);
/* here I need to bind the socket to the same address as that in
* the destination part of the received packet.
* But I found I can't ...
*/
socket.send(new DatagramPacket('data', len, packet.getSocketAddress());
我简直不敢相信(用C语言编写)这样简单的事情无法用Java完成。有人可以给我提示吗?预先感谢!