实验场景:
两树莓派置于同一局域网内,一个作为客户端一个作为服务端,通过两个py文件实现socket通信,
使两者可以互相发送和接收消息,具体的socket原理可参考:Socket技术详解
实验代码:
在代码内部设置服务器端的主机ip和端口号,树莓派的ip查询命令如下:
hostname -I
查询到ip地址后,可先通过ping命令查看两树莓派能否拼通:
ping 10.202.25.3
服务器端代码:
#encoding=utf-8
import socket
import time
host = "10.202.25.3" #服务器ip
port = 6666 #服务器端口号
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 选择IPv4地址以及TCP协议
print "通信服务开启"
mySocket.bind((host, port)) # 绑定端口
mySocket.listen(5) # 监听这个端口,可连接最多5个设备
if __name__ == '__main__':
while True:
client, address = mySocket.accept() # 接受客户端的连接请求
print "连接IP: %s 成功" % address[0]
try:
client.settimeout(120) # 设置2min时限
while True:
msg = client.recv(1024) # 接收消息
if not msg:
break
else:
print(b"接收对方消息: "+msg)
call(msg)
mssg = raw_input(b"输入发送消息: ")
client.send(mssg) # 发送消息
except socket.timeout: # 超时
print ('time out')
mySocket.close() # 关机
客户端代码:
#encoding=utf-8
import socket
import time
HOST = '10.202.35.2' #服务器的ip
PORT = 6666 #服务器端口
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #以TCP协议模式进行通信
sock.connect((HOST,PORT)) #连接服务器
while True:
msg=raw_input(b'输入发送消息:') #raw_input()将输入自动转化为字符串
sock.send(msg) #发送消息
data=sock.recv(1024)
print(b'接受对方消息:'+data) #接收消息
sock.close() #关闭连接
实验结果:
这里添加了控制手机拨打电话的命令,可以结合上一篇去看,简单实现了两端的通信

最后
以上就是善良电灯胆最近收集整理的关于树莓派(三) 树莓派间的socket通信(python)实验场景:实验代码:实验结果:的全部内容,更多相关树莓派(三)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复