lhs472194266
Haisen大王
2015-08-08 09:22
采纳率: 61.4%
浏览 1.6k
已采纳

Socket连接问题,返回客户端地址的问题

客户端通过:s=new Socket("127.0.0.1", 5858);访问服务端
服务段通过:String name=s.getInetAddress().getHostAddress()+":"+s.getPort();
返回的:127.0.0.1:52703
客户端通过:s=new Socket("192.168.1.100", 5858);访问服务端
服务段通过:String name=s.getInetAddress().getHostAddress()+":"+s.getPort();
返回的:192.168.1.100:52709 为什么这时就返回192的而不是127那个??

127不是回环地址,,我若随便输入个127.0.0.8,怎么不但没错,依旧能连接本地服务端,而且服务端返回的IP还是127.0.0.1。

有点不懂

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • lpfly
    lpfly 2015-08-08 09:44
    已采纳

    首先127是loopback interface。从127.0.0.1到127.255.255.254都在loopback interface上,所以你输入任意以127开始的地址都是你自己。
    从你的代码可以看出你自己就是192.168.1.100。

    前后不一样的原因是:你的客户端通过两个不同的interface来访问服务器。第一次你用的是loopback interface,所以你看到的对方也是127网段的地址。第二次你用的是另一个interface(eth或者其他),所以你看到的是192.168.1网段的地址。

    重点就是:你两次通过不同的interface来访问服务器,两个interface的配置是不一样的,所以你看到的服务器的结果跟相应的interface配置有关。

    点赞 评论

相关推荐