首页 > 解决方案 > 使用 Python 在 Mac OS 上与 docker 内的服务器的 TCP 连接上客户端的管道损坏

问题描述

我有一个 client.py 将数据发送到(server_ip,60000)。接收数据的服务器端代码位于 docker 容器内。代码在 Python 中,服务器在 Mac OS 上运行。在迁移到 docker 之前,我可以成功传输数据。在对 server.py 代码进行 dockerizing 之后,会发生绑定,但是 client.py atconnection.sendall(out)说:

socket.error: [Errno 32] Broken pipe

这是我的 docker-compose.yml:

version: '2'
services:
  server:
    build: ./server
    ports:
      - server_IP:60000:60000

这是 server.py 中的绑定:

port = 60000                   
host = "localhost"  

知道为什么会这样吗?

标签: pythonsocketsdockertcp

解决方案


好吧,我可以通过在 docker 内将服务器端的主机设置为 0.0.0.0 并删除-重建图像来修复它。一切正常。


推荐阅读