树莓派间通信-socket通信

树莓派间通信-socket通信

    上篇文章已经尝试过使用mongo作为介质,来实现消息的传递;今天这篇文章将尝试socket,来实现消息传递;具体scoket的详细信息,可以网上搜索查看,这篇文章主要是讲解两个树莓派之间如何使用socket通信。
    使用mongo文章:https://www.shumeijiang.com/2021/01/24/多个树莓派之间实现通信对话/
两个树莓派,一个3b+,一个zero
#上图可见,实验用到一个树莓派zero(上),一个树莓派3b+(下);
#server服务端代码

#!/usr/bin/env python
#coding:utf-8

import socket
import time

host = '192.168.0.118'  #本机(主机)ip
port = 1026   # 自定义端口

server = socket.socket() #默认AF_INET、SOCK_STREAM
server.bind((host, port)) #连接主机
server.listen(5) #连接最多5个设备

while True:
    connect, address = server.accept() #开始接收客户端连接请求

    #处理连接交互信息
    while True:
        data = connect.recv(1024) #接收客户端发送的信息
        if not len(data):
            print('链接已断开')
            break
        else:
            print('收到信息:%s'%data)

        #信息回复
        connect.send('ok')

server.close()
#client客户端

#!/usr/bin/env python
#coding:utf-8

import socket
import time

host = '192.168.0.118' #主机地址
port = 1026

client = socket.socket()
client.connect((host, port)) #连接主机

while True:
    s = raw_input(">>")   #接收输入
    client.send(s)   #发送给主机信息
    data = client.recv(1024)  #接收主机回复信息

    #主机回复信息处理
    if data=='ok':
        print('命令传输完成')

client.close()
    从上面代码可知,客户端接收用户输入,然后发送给服务端,服务端将信息处理,然后发送给客户端处理状态。
#实验过程:
1、首先启动server端,执行Python server.py;
2、接着启动client端,执行Python client.py;
3、client端,提示">>",输入指令,然后回车发送给服务端;
4、服务端接收到数据,然后处理后将处理状态发送给客户端;
#效果如下图:
客户端发送命令
服务端接收处理

jiujiang

评论已关闭。