matlab与python SOCKET通信——UDP方法与TCP方法

本文记录了一种使用Python和MATLAB进行UDP和TCP通信的项目实践。在UDP通信中,遇到的问题包括数据量限制和MATLAB端的图片刷新延迟,通过调整MATLAB的InputBufferSize属性和加入pause解决。在TCP通信中,由于丢包问题选择TCP,注意fread读取大小的设定,避免程序崩溃。提供了Python和MATLAB的示例代码。
摘要由CSDN通过智能技术生成

前言

  目前的正在做的项目是打算把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 = 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值