前言
目前的正在做的项目是打算把ARM端的数据传到PC上好做算法,考虑的方案是ARM使用python,PC端使用matlab,用TCP或者UDP协议传输,先写了几个简单的例程,试了试效果,中途遇到了一些问题,本来关于python和matlab之间的网络通信的资料就挺少的,所以在博客上记录一下(需要注意,我这里的python使用的是3.5,所以在语法上和2.7略有不同,比如网络传输的时候,不能传输str,而是要改为bytes)。
UDP方法
此时python是server端,matlab是client端。一开始遇到了一些问题,UDP传来的数据实在是太少了,后来才知道是matlab里面有一个InputBufferSize属性需要设置,将其设置大了后就好了。matlab还有一个需要注意的点是图片刷新问题,我发现不加上pause,matlab不会刷新图片的,加上pause后,图片就能实时刷新了。
python的代码
import socket
import time
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#ipv4,udp
sock.bind(('192.168.192.102',54377))#UDP服务器端口和IP绑定
buf, addr = sock.recvfrom(40960)#等待matlab发送请求,这样就能获取matlab client的ip和端口号
print(addr)
a=[x for x in range(40960,41160)]
while True:
a=[x + 1 for x in a]
s=str(a)#将数据转化为String
sock.sendto(bytes(s, encoding =