0

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

0 に答える 0