帮帮我,我能够在主机/侦听器系统中获取发件人的 IP 地址,如何获取发件人的姓名,我认为应该是“packet.getHostName(string ip-address)”,其中数据包是数据包的引用侦听器从发送者那里收到。我能够通过“packet.getAddress()”获取发件人的 IP。
下面是代码:
al=new ArrayList();
al1=new ArrayList();
try{
InetAddress nn = InetAddress.getByName("ALL-SYSTEMS.MCAST.NET");
int pn = Integer.parseInt( "4000" );
MulticastSocket socket = new MulticastSocket(pn);
DatagramPacket packet = new DatagramPacket(new byte[128], 128);
socket.joinGroup(nn);
System.out.println( "waiting for a packet from "+nn+"...");
socket.receive(packet);
GUI.setTextArea(new String(packet.getData()));
if(!al.contains(packet.getAddress()))
{
al.add(packet.getAddress());
al1.add(packet.getAllByName(new String(packet.getAddress)));
}
else if("EXIT".equals(new String(packet.getData())))
{
al.remove(packet.getAddress());
al1.remove(packet.getAllByName(new String(packet.getAddress)));
}
GUI.clearLoginArea();
//for(int j=0;j<al1.size();j++){
for(int i=0;i<al.size();i++){
GUI.setLoginArea(al.get(i)+"");
}
// GUI.setLoginArea(al1.get(j)+"");
//}
socket.leaveGroup(nn);
socket.close();
}
catch (IOException e) {
System.err.println(e.getMessage());
}