报文包的源地址为何多个“/”?

zhuyutian 2008-05-12 08:55:10
.........
DatagramSocket ds;
byte[] buffer = new byte[8192];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
ds.receive(incoming);
........
当我用方法incoming.getAddress()去取得收到数据报的IP地址时,发现前面总是多个“/”,例如"/127.0.0.1",这是为什么啊?如何解决?
...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
大海Online 2008-05-12
  • 打赏
  • 举报
回复
楼上的讲解非常清晰!!!
云上飞翔 2008-05-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhuyutian 的帖子:]
.........
DatagramSocket ds;
byte[] buffer = new byte[8192];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
ds.receive(incoming);
........
当我用方法incoming.getAddress()去取得收到数据报的IP地址时,发现前面总是多个“/”,例如"/.0.1127.0",这是为什么啊?如何解决?
[/Quote]
答:
1)为什么多一个"/"?原因是:楼主得到的是InetAddress对象,楼主肯定是直接将该对象打印出来的.在打印InetAddress对象时,其字符串输出格式分为两个部分,形式是:主机名(域名)/IP地址.因为楼主是从远方接收的包,从而前边"主机名或域名"部分是空串,最终输出的是楼主看到的:/IP地址
2)如何解决?很简单啊.楼主从InetAddress对象中再取出IP地址就行了,代码是:
   String IP=incoming.getAddress().getHostAddress();
zhuyutian 2008-05-12
  • 打赏
  • 举报
回复
它这么搞有何意义啊?
jdlsfl 2008-05-12
  • 打赏
  • 举报
回复
函数本身如此,把得到的地址自己处理下

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧