在两个树莓派间用socket传输。请写一个接受程序。要求在发送端停止后结束
时间: 2024-04-30 11:18:31 浏览: 13
以下是一个简单的Python Socket接收程序,可以在两个树莓派间进行数据传输,并在发送端停止后结束。
```python
import socket
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP和端口
server_socket.bind(('0.0.0.0', 8888))
# 监听连接
server_socket.listen(1)
print('等待连接...')
# 接受连接
client_socket, client_address = server_socket.accept()
print('连接来自:', client_address)
# 接收数据
while True:
data = client_socket.recv(1024)
if not data:
break
print('接收到数据:', data)
# 关闭连接
print('连接已关闭')
client_socket.close()
server_socket.close()
```
在这个程序中,我们首先创建一个socket对象,然后绑定IP和端口。接着等待连接,并在接收到连接后打印连接来自哪里。接下来我们在一个while循环中持续接收数据,直到接收到空数据表示发送端已经停止发送。最后我们关闭连接。
注意,在此程序中,我们使用了一个无限循环来接收数据。这是因为Socket是一个阻塞的操作,如果没有数据可接收,程序会一直等待。因此,我们需要在接收完所有数据后手动终止循环。另外,程序中使用了recv()函数来接收数据,该函数会一直等待直到接收到数据。如果需要设置超时时间,可以使用settimeout()函数。