Haisen大王 2015-08-08 09:22 采纳率: 50%
浏览 1619
已采纳

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 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配置有关。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog