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,就可以与远程主机通信,这里只是简单的本地通信,运行结果如图:MATLAB下UDP通信的简单实现_第1张图片

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

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

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

u1.InputBufferSize=1024

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

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

u1.OutputBufferSize=1024

这样就行啦。

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

MATLAB实现简单的聊天软件

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

你可能感兴趣的:(MATLAB代码)