如果将 Python 中的套接字绑定到 localhost,8200,则可以通过http://localhost:8200/ 访问。但不是http://xxxx:8200/
如果将 Python 中的套接字绑定到 xxxx,8200, machinename,8200 可以通过http://xxxx:8200/和http://machinename:8200/ 访问,但不能通过http://localhost:8200/
我认为 localhost 的意思是“这台机器”,使用它会“循环回”到机器的 ip 地址,但它似乎是不同的 ips。
127.0.0.1 总是与机器 ip 地址不同的 ip 地址吗?
更新:
我知道实际数字是不同的,但是环回有什么作用?
例如,维基百科说
“将 Web 浏览器指向 URL http://127.0.0.1/或http://localhost/将访问该计算机自己的网站”
但该网站也可以在 xxxx 上访问,并且大概在 xxxx 上设置了一个套接字 那么这两个引用如何工作呢?
结论:
我想我终于明白 127.0.0.1 和 xxxx 是这样工作的
--127.0.0.1 ==\
>- Computer
--x.x.x.x ==/
Run Code Online (Sandbox Code Playgroud)
并不是
--127.0.0.1 ==\
--------------- x.x.x.x >- Computer
Run Code Online (Sandbox Code Playgroud)
或者
--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer
Run Code Online (Sandbox Code Playgroud)
感谢大家的帮助
hoo*_*enz 20
回答你的问题。
127.0.0.1 不仅是与机器 IP 地址不同的 IP 地址,它也是不同的接口。不应在本地网络上看到 127.0.0.1。它是环回适配器的特殊内部 IP 地址。
xxxx 将是您的以太网卡。
顺便说一句,'localhost' 只是主机文件中指向 127.0.0.1 的一个条目
如果您将套接字绑定到 127.0.0.1:8200,那么只有本地运行的客户端才能访问它,并且只能使用http://127.0.0.1:8200或http://localhost:8200(或 dns 或 hosts 文件条目指向 127.0.0.1)。
绑定到 xxxx:8200 的套接字只能通过http://xxxx:8200或指向它的 dns 或 hosts 文件条目可用。
将套接字绑定到 127.0.0.1 也不会自动使其在以太网接口上可用。
这就是您无法连接到 xxxx:8200 的原因
您可以将端口 8200 绑定到所有可用接口 (0.0.0.0),然后它应该可以工作。
环回适配器的其他特性:
环回接口是一个虚拟接口。它通常用于允许程序在同一台机器上相互交谈。这不是引用机器 IP 地址的方法。127.0.0.1 是环回虚拟适配器的 IP 地址。
关于环回适配器的另一件事是,因为它是虚拟的,它实际上不会将任何数据包传递到网卡。
| 归档时间: |
|
| 查看次数: |
30022 次 |
| 最近记录: |