.........
DatagramSocket ds;
byte[] buffer = new byte[8192];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
ds.receive(incoming);
........
当我用方法incoming.getAddress()去取得收到数据报的IP地址时,发现前面总是多个“/”,例如"/127.0.0.1",这是为什么啊?如何解决?

解决方案 »

  1.   

    答:
    1)为什么多一个"/"?原因是:楼主得到的是InetAddress对象,楼主肯定是直接将该对象打印出来的.在打印InetAddress对象时,其字符串输出格式分为两个部分,形式是:主机名(域名)/IP地址.因为楼主是从远方接收的包,从而前边"主机名或域名"部分是空串,最终输出的是楼主看到的:/IP地址
    2)如何解决?很简单啊.楼主从InetAddress对象中再取出IP地址就行了,代码是:
       String IP=incoming.getAddress().getHostAddress();