You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Socket无法连接iPad与树莓派的问题求助

解决iPad连接树莓派Socket服务器出现Connection refused的问题

核心问题定位

你遇到的[Errno 61] Connection refused错误,核心原因是客户端配置错误——client.py里的HOST设为0.0.0.0完全错误,0.0.0.0是服务器用来监听所有网卡地址的占位符,客户端必须指定树莓派的实际局域网IP才能建立连接。

分步解决方案

1. 获取树莓派的局域网IP

在树莓派终端执行以下命令,查看WiFi或以太网的局域网IP:

ip addr

找到对应网卡(比如wlan0对应WiFi)下的inet字段,比如192.168.3.12,这就是树莓派在局域网内的可访问地址。

2. 修正client.py的HOST配置

把client.py里的HOST = "0.0.0.0"替换成刚才获取的树莓派IP,同时补充消息发送和接收逻辑(原代码仅完成连接,未实现消息交互):

import socket

# 替换为你的树莓派局域网IP
HOST = "192.168.3.12"
PORT = 9999

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

print("Attempting connection... ")
try:
    sock.connect((HOST, PORT))
    print("Connected")
    # 发送消息到树莓派
    sock.send(b"Hello from iPad!")
    # 接收服务器的ACK响应
    response = sock.recv(1024)
    print(f"Received server response: {response.decode('utf-8')}")
except ConnectionRefusedError:
    print("Connection failed: 检查树莓派IP、端口是否开放,以及服务器是否运行")
finally:
    sock.close()

3. 确认网络环境一致

确保iPad和树莓派连接的是同一个WiFi/局域网,跨网段或不同网络下无法直接访问。

4. 检查树莓派防火墙设置

如果树莓派开启了防火墙(比如ufw),需要允许9999端口的TCP连接:

sudo ufw allow 9999/tcp
sudo ufw reload

若仅用于测试,可临时关闭防火墙:

sudo ufw disable

5. 验证服务器监听状态

在树莓派终端执行命令,确认server.py确实在监听9999端口:

netstat -tulpn | grep 9999

输出中应能看到python3进程监听0.0.0.0:9999。

测试流程

  1. 树莓派上运行python3 server.py,看到[*] Listening on 0.0.0.0:9999说明服务器启动正常。
  2. iPad上运行修正后的client.py,正常情况下会输出连接成功、发送消息、收到服务器的ACK响应。

内容的提问来源于stack exchange,提问作者RockZombie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:54:18