.........
DatagramSocket ds;
byte[] buffer = new byte[8192];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
ds.receive(incoming);
........
当我用方法incoming.getAddress()去取得收到数据报的IP地址时,发现前面总是多个“/”,例如"/127.0.0.1",这是为什么啊?如何解决?
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)为什么多一个"/"?原因是:楼主得到的是InetAddress对象,楼主肯定是直接将该对象打印出来的.在打印InetAddress对象时,其字符串输出格式分为两个部分,形式是:主机名(域名)/IP地址.因为楼主是从远方接收的包,从而前边"主机名或域名"部分是空串,最终输出的是楼主看到的:/IP地址
2)如何解决?很简单啊.楼主从InetAddress对象中再取出IP地址就行了,代码是:
String IP=incoming.getAddress().getHostAddress();