我是套接字编程的新手。我的套接字可以使用localhost或本地ip。但是,为什么不能使用我的公共IP创建套接字服务器?当我尝试在python中执行此操作时,它抱怨“无法分配请求的地址”。
import socket
s=socket.socket()
host="address"
port=5000
s.bind((host, port))
s.listen(5)
while True:
c, addr=s.accept()
result=c.recv(1024)
print(result.decode('utf-8'))
c.send("""
test
""".encode('utf-8'))
c.close()
我从以下网站获得的IP:http://whatismyip.host/
答案 0 :(得分:1)
诸如http://whatismyip.host/之类的服务将向您显示路由器的公共地址,即连接到Internet的计算机。如果您查找台式机的IP,它可能会显示类似192.168.0.10
的内容,其中192.168.0.1
是您在台式机中输入的路由器的地址,即“网关”。
您的路由器类似于防火墙,将您的家庭网络与公共Internet分开。
为了在台式机上接收连接,您需要在路由器上配置端口转发。
您仍将在192.168.0.10
(您本地计算机的IP)上侦听python进程。或者,您可以将其设置为0.0.0.0
,这是“所有可用接口”的简写。
请注意,您的公共IP地址可能不稳定。