我正在学习 Java 的套接字编程。
我使用以下语句连接到网站:
s = new Socket("www.nba.com", 80);
当我调试应用程序并查看 s 的内容时,我看到:
Socket[addr=www.nba.com/2.21.246.97,port=80,localport=7846]
1)我想知道这个localport 7846来自哪里以及它到底是什么。
2)如果网站的IP地址是2.21.246.97,为什么我在浏览器地址栏中输入2.21.246.97无法连接到该网站?
Thanks
它是本地套接字端口号。一般是由系统分配的。
See 什么是套接字?.
在客户端:客户端知道计算机的主机名
服务器正在运行的端口号以及服务器所在的端口号
听。为了发出连接请求,客户端尝试
在服务器的机器和端口上与服务器会合。这
客户端还需要向服务器标识自己,以便绑定到
在此连接期间将使用的本地端口号。这是
一般由系统分配。
至于第二个问题:
我假设这个 IP 地址是您在 DNS 服务器查找时获得的www.nba.com
(我的不一样)。问题可能是该地址处的 HTTP 服务器为多个虚拟主机提供服务和/或它关心的是Host
您的浏览器发送的标头。在您的情况下,它是 IP 地址而不是www.nba.com
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)