客户端通过: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。
有点不懂
首先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配置有关。