因为我的毕设是有关树莓派的,但是之前对树莓派一窍不通,所以从前几天开始学习
因为要通过socket通信的方式来让树莓派和电脑(也算是后端吧?)互相发送信息,所以先从最基本的开始
在树莓派中打开thonny,也就是python编译器。新建一个test.py,输入如下代码
import socket #导入socket模块
def main():
host = '服务器IP' # 服务器IP地址 可以在windows上通过ipconfig查找到
port = 12345 # 服务器端口号 尽量不要使用1024以下的端口
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #这行代码创建了一个 socket 对象。socket.AF_INET 指定了地址族为 IPv4,socket.SOCK_STREAM 表明这是一个 TCP socket。
client_socket.connect((host, port)) #这行代码用之前设置的 IP 地址和端口号来连接服务器。
message = '你好,服务器!'
while message != 'q':
client_socket.send(message.encode())
data = client_socket.recv(1024).decode()
print('从服务器收到的数据: ' + data)
message = input(" -> ")
#这部分代码首先设置了一个初始消息。然后,进入一个循环,循环会持续直到用户输入 'q'。在循环内,它先发送一个编码后的消息到服务器,然后等待并接收服务器的回复(最多1024字节),并将接收到的数据解码打印出来。之后,循环等待用户再次输入。
client_socket.close()
if __name__ == '__main__':
main()
这样树莓派部分就成功了,然后我们打开pycharm,输入如下代码
import socket
def main():
host = '0.0.0.0' # 监听所有可用的接口
port = 12345 # 端口号
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(1) #使服务器开始监听连接请求
print("等待客户端连接...")
conn, address = server_socket.accept()
print("连接来自: " + str(address))
while True:
data = conn.recv(1024).decode()
if not data:
break
print("从客户端收到的数据: " + str(data))
data = data.upper()
conn.send(data.encode())
conn.close()
if __name__ == '__main__':
main()
然后先执行pycharm中的代码,再执行树莓派中的代码。就能成功了