使用Python打开外部计算机的套接字

Ale*_*xis 3 python sockets networking network-programming

我使用以下代码在我的计算机上打开一个套接字.当我在计算机上转到my_ip:5000时,程序会响应.但是,当我使用另一台计算机时,没有任何反应.

HOST = 'my_ip'                 # Symbolic name meaning the local host
PORT = 8000              # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
    data = conn.recv(1024)
    if not data: break
    conn.send(data)
conn.close()
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是防火墙的问题.当我在django中启动测试服务器时,manage.py runserver my_ip:8000我可以从另一台计算机连接到该机器.我不确定是什么原因导致我无法使用上面的代码从另一台计算机连接...

phi*_*hag 8

通过设置HOST来'my_ip',你可以听一个私有IP只能解析到您的计算机您的计算机.最着名的例子是127.0.0.1.而是传递一个空字符串(HOST='')来侦听来自指定端口的任何请求.确保在两台计算机上使用相同的端口号,即5000或8000.

另外,检查计算机之间(或安装在其中一台计算机上)之间的防火墙是否阻止连接.

要测试您的计算机原则上是否可访问,请python -m SimpleHTTPServer在服务器上没有私人信息的目录中运行,并尝试访问从客户端启动的Web服务器.