写树莓派与树莓派之间通信的python代码
时间: 2024-11-04 22:13:36 浏览: 14
本科毕业设计一套基于树莓派设计的空气检测系统python源码.zip
在树莓派上使用Python编写两个设备之间的通信通常涉及到网络共享或串口连接。这里我们假设它们都运行在同一局域网中,我们将展示如何通过`socket`库进行简单TCP/IP通信。
如果你的树莓派A和B都在同一个网络内,你可以用以下代码示例:
```python
import socket
# 设备A作为服务器
def server(ip, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((ip, port))
sock.listen(1) # 监听连接
print(f"Server started on {ip}:{port}")
conn, addr = sock.accept() # 接受连接
print("Connected by", addr)
while True:
data = conn.recv(1024) # 接收数据
if not data:
break
conn.sendall(data) # 发送接收到的数据
if __name__ == "__main__":
server("192.168.1.2", 12345) # 请替换为实际IP地址(如树莓派A的IP)
# 设备B作为客户端
def client(ip, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((ip, port)) # 连接到服务器
message = "Hello from Client" # 需要发送的消息
sock.sendall(message.encode()) # 发送消息
received_data = sock.recv(1024) # 接收响应
print("Received:", received_data.decode())
if __name__ == "__main__":
client("192.168.1.2", 12345) # 请替换为实际IP地址(如树莓派A的IP)
```
- `server()` 函数开启一个监听端口的服务,等待来自其他设备的连接。
- `client()` 函数则连接到服务器,发送消息并接收响应。
注意:确保两个树莓派的防火墙设置允许相应的端口通讯,并且它们都能访问彼此的IP地址。
相关问题:
1. 如何在树莓派之间通过USB线连接通信?
2. 如果树莓派不在同一网络下,如何修改上述代码?
3. 在实际应用中,如何处理错误和异常情况?
阅读全文