帮我用python写一个代码:获取树莓派cpu使用率 CPU温度 硬盘使用率 内存使用率并利用tcp传输给上位机 给出服务器和客户端代码
时间: 2024-05-08 10:19:57 浏览: 208
好的,以下是 Python 代码:
服务器端代码:
```
import psutil
import socket
# 获取树莓派 CPU 使用率
def get_cpu_usage():
return psutil.cpu_percent()
# 获取树莓派 CPU 温度
def get_cpu_temperature():
return psutil.sensors_temperatures()['cpu-thermal'][0].current
# 获取树莓派硬盘使用率
def get_disk_usage():
return psutil.disk_usage('/').percent
# 获取树莓派内存使用率
def get_mem_usage():
return psutil.virtual_memory().percent
# 创建 TCP 服务端
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定 IP 和端口
s.bind(('0.0.0.0', 8888))
# 监听端口
s.listen(1)
while True:
# 等待客户端连接
conn, addr = s.accept()
print('Connected by', addr)
# 发送数据给客户端
conn.send(('CPU usage: ' + str(get_cpu_usage()) + '%\n'
'CPU temperature: ' + str(get_cpu_temperature()) + '°C\n'
'Disk usage: ' + str(get_disk_usage()) + '%\n'
'Memory usage: ' + str(get_mem_usage()) + '%\n').encode())
# 关闭连接
conn.close()
```
客户端代码:
```
import socket
# 创建 TCP 客户端
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
s.connect(('10.0.0.1', 8888))
# 接收数据
data = s.recv(1024)
# 打印数据
print(data.decode())
# 关闭连接
s.close()
```
其中,服务器端代码中需要将 `0.0.0.0` 替换成树莓派的 IP 地址,客户端代码中需要将 `10.0.0.1` 替换成服务器的 IP 地址。
阅读全文