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