MATLAB下UDP通信的简单实现

UDP是面向 无连接 的通信协议,使用简单,但是安全性不足,这里利用MATLAB实现 本地主机 的UDP通信,与远程主机的相类似,只不过更改一下地址而已。

1. 代码如下,写入文件即可:

u1=udp('222.20.36.185','RemotePort',8866,'LocalPort',8844);%与IP为222.20.36.185的远程主机(其实是我自己的IP)建立udp,远程主机端口为8866,本地主机端口为8844。
u2=udp('222.20.36.185','RemotePort',8844,'LocalPort',8866);%同上
fopen(u1);%打开udp连接(实际上并没有连接,udp是无连接的通信协议)
fopen(u2);%同上
fprintf(u1,'Ready for data transfor.');%主机1(就是udp1)发送文本消息
fscanf(u2)%主机2接收文本消息
fclose(u1);%关闭udp1连接
fclose(u2);%同上
delete(u1);%删除udp1连接,释放内存
delete(u2);%同上
clear u1;%清除工作区中的udp1数据
clear u2;%同上

2.运行

通过更改远程主机IP,就可以与远程主机通信,这里只是简单的本地通信,运行结果如图:在这里插入图片描述

3. 这样就完成了简单的UDP通信,如果大家遇到问题,或者发现代码的BUG,欢迎交流,互相促进!

PS:前段时间有人在评论区问到,如何修改缓冲区大小,这里也说一下,非常简单。

首先,修改获取数据的缓冲区,UDP的对象有一个属性:InputBufferSize,这里就是缓冲区大小,只需添加一句:

u1.InputBufferSize=1024

就可以把缓冲区大小改为1024个字节.

同理,修改发送区缓冲区大小,添加:

u1.OutputBufferSize=1024

这样就行啦。

注意:本方法不适用于公网远程通信,具体原因看我这篇文章:

MATLAB实现简单的聊天软件

UDP的公网单向通信请看这篇文章:
Matlab公网通信的实现(NAT123实现内网穿透)

  • 15
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 63
    评论
MatlabUDP通信是一种通过用户数据报协议(UDP)进行数据传输的通信方式。UDP是一种无连接的协议,它将数据分成较小的数据包,不保证数据传输的可靠性和顺序。UDP通信在实时性要求较高的应用中常被使用,比如实时数据采集、实时控制等。 在Matlab中,利用UDP通信可以实现两个或多个Matlab实例之间的数据传输。首先,需要创建UDP对象,并设置远程主机和端口号。然后,可以使用read和write方法来接收和发送数据。例如,可以使用fread函数来接收UDP数据,使用fwrite函数来发送UDP数据。 在实际操作中,首先需要创建一个UDP对象,指定要连接远程主机和端口号。然后,可以通过open方法打开UDP连接。接下来,可以使用fread来接收数据。例如,可以使用如下代码实现UDP接收数据udpObj = udp('192.168.1.100', 1234); fopen(udpObj); data = fread(udpObj); fclose(udpObj); 同样,可以使用fwrite来发送数据。例如,可以使用如下代码实现UDP发送数据: udpObj = udp('192.168.1.100', 1234); fopen(udpObj); fwrite(udpObj, data); fclose(udpObj); 需要注意的是,在进行UDP通信时,需要保证远程主机的IP地址和端口号是正确的,并且两个Matlab实例之间的UDP设置是一致的。 总而言之,MatlabUDP通信提供了一种实时数据传输的方式,可以用于各种需要实时性的应用中。通过创建UDP对象,并使用读写函数,可以实现Matlab实例之间的数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 63
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值