Python simplehttpserver或http.server(python 3)将监听每个接口。其他人 - >你的路由器 - >你的服务器。
这是拯救你的一点。 (答案是肯定的,如果您没有端口转发和DMZ,它将无法工作)
您的路由器具有阻止端口的过滤器。如果您希望从世界上看到您的服务器,则必须手动允许端口。
您的路由器可能还有一个显示“DMZ”或DeMilitarizedZone的部分。除了端口转发(允许端口通过过滤器),您还需要DMZ您自己的计算机,或托管服务器的任何设备。为此,只需将您的计算机IP放入DMZ即可。
注意:如果你的计算机是DMZ,那么在这种情况下使用静态IP可能很方便。
此外,如果您真的不想在家门口上网,请使用主机作为 "127.0.0.1"
而不是 "0.0.0.0"
。
示例测试:
from socket import *
a = socket(AF_INET,SOCK_STREAM)
a.bind(('0.0.0.0',8000))
a.listen(1)
b,c = a.accept()
#Port tester can detect and the program receives the connection.
d = socket(AF_INET,SOCK_STREAM)
d.bind(('127.0.0.1',8000))
d.listen(1)
e,f = d.accept()
#Port tester cannot detect and the program receives no connection.