皆さん助けてください。ホスト/リスナー システムで送信者の 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());
}