使用 socketio 连接到树莓派

时间:2021-05-16 06:51:19

标签: python python-3.x tcp raspberry-pi

我想使用 socketio documentation 中的服务器和客户端示例脚本连接到 Raspberry。 我使用的是第一个客户端和服务器示例代码。

当我在 pi 上运行服务器脚本时,我得到:

pi@raspberrypi:~/Desktop $ python3 server_socketio.py
(792) wsgi starting up on http://0.0.0.0:5000

所以这似乎有效。

当我在 Ubuntu 20.04 PC 上运行客户端脚本时,我得到:

/usr/bin/python3.8 /home/marco/Schreibtisch/BlinkingLED/client_socketio.py
Traceback (most recent call last):
  File "/home/marco/Schreibtisch/BlinkingLED/client_socketio.py", line 29, in <module>
    sio.connect('http://0.0.0.0:5000')
  File "/home/marco/.local/lib/python3.8/site-packages/socketio/client.py", line 314, in connect
    raise exceptions.ConnectionError(exc.args[0]) from None
socketio.exceptions.ConnectionError: Connection refused by the server

我试图用

打开pi上的端口
sudo apt-get install ufw
sudo ufw allow 5000
sudo ufw enable
sudo reboot

给出

pi@raspberrypi:~/Desktop $ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
5000                       ALLOW       Anywhere                  
8090                       ALLOW       Anywhere                  
22                         ALLOW       Anywhere                  
5000 (v6)                  ALLOW       Anywhere (v6)             
8090 (v6)                  ALLOW       Anywhere (v6)             
22 (v6)                    ALLOW       Anywhere (v6)             

而 netstat 给出:

pi@raspberrypi:~/Desktop $ sudo netstat -tulpn | grep LISTEN
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      471/vncserver-x11-c 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      480/sshd            
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      419/cupsd           
tcp6       0      0 :::5900                 :::*                    LISTEN      471/vncserver-x11-c 
tcp6       0      0 :::22                   :::*                    LISTEN      480/sshd            
tcp6       0      0 ::1:631                 :::*                    LISTEN      419/cupsd    

将 python 脚本中的端口更改为 5900 或 8090 也不起作用。怎么了?有没有更好的战争在树莓派上打开端口?据我了解,ufw 是防火墙。在我能够再次通过 ssh 连接到我的 pi 之前,我必须 。 请帮忙。

1 个答案:

答案 0 :(得分:0)

服务器监听 0.0.0.0:5000。此上下文中的特殊 IP 地址 0.0.0.0(“任何地址”)表示侦听所有本地接口(环回、以太网等)上的传入连接。 5000 是端口号,没问题。

客户端尝试连接到 0.0.0.0:5000。作为目标地址的特殊 IP 地址 0.0.0.0 无效。计算机不知道将网络数据包发送到哪里。 “任何地址”在这里不可用,您必须提供一个真实的 IP 地址,该地址可以通过连接客户端和服务器的网络访问。