我如何使用UDP函数两台计算机之间发送数据的仪器控制工具箱?

123(30天)

接受的答案

MathWorks支万博1manbetx持团队
编辑:MathWorks支万博1manbetx持团队 约11小时前
通过创建和定制一个UDP对象在每台计算机上,您可以配置每个对象交流通过数据读写命令。请记住,UDP协议并不能保证传输或数据包的顺序。
下面的例子显示了如何交流在两台计算机之间,被称为“是machineA”和“machineB”使用UDP仪器控制工具箱的函数。在这个例子中,是中IP地址的是machineA和machineB 144.212.206.23 144.212.206.178,分别。这些计算机所使用的端口是9090和9091,分别。
步骤1。配置机器
在第一台机器,在MATLAB命令提示符发出以下命令:
% %定义变量弊
异丙醇=“144.212.206.23”;门= 9090;%修改这些值是那些你的第一台电脑。
调查=“144.212.206.178”;portB = 9091;%修改这些值的第二个电脑。
% %创建UDP对象
portB udpA = udp(调查,“LocalPort”门);
% % UDP连接对象
fopen (udpA)
步骤2。配置机器B
在第二个机器,发出以下命令在MATLAB命令提示符:
% %定义变量弊
%修改这些值的你的第一台电脑:
异丙醇=“144.212.206.23”;门= 9090;
%修改这些值的第二个电脑:
调查=“144.212.206.178”;portB = 9091;
% %创建UDP对象
udpB = udp(异丙醇,门,“LocalPort”,portB);
% % UDP连接对象
fopen (udpB)
现在电脑都配置为通过UDP与彼此交流。然而,我们将继续这个例子展示了一个简单的沟通可能进步。
步骤3。从机器到机器B发送消息。
在第一台机器,在MATLAB命令提示符发出以下命令:
流(udpA“这是第一个测试消息。”)
流(udpA“这是第二个测试消息。”)
流(udpA“doremifasolatido”)
步骤4。检索消息机器B从机器上。
在第二个机器,发出以下命令在MATLAB命令提示符:
fscanf (udpB)
注意,只有第一个消息检索:
ans =
是第一个测试消息。
现在,通过发出相同的命令检索第二个消息在MATLAB命令提示符:
fscanf (udpB)
在这里,只有第二个消息检索:
ans =
是2号测试消息。
现在,让我们获取第三条消息,只有这一次,我们将检索这两个字符。要做到这一点,我们需要设置“DatagramTerminateMode”属性。
在第二个机器,发出以下命令在MATLAB命令提示符:
集(udpB,“DatagramTerminateMode”,“关闭”)
笔记= 1:8,fscanf (udpB“% c”2),结束
您的输出应如以下:
ans =
ans =
再保险
ans =
心肌梗死
ans =
足总
ans =
所以
ans =
ans =
“透明国际”
ans =
第5步。清理机器
在第一台机器,在MATLAB命令提示符发出以下命令:
% %清理机
文件关闭(udpA)
删除(udpA)
清晰的异丙醇门调查portB udpA
步骤6。清理机器B
在第二个机器,发出以下命令在MATLAB命令提示符:
% %清理机器B
文件关闭(udpB)
删除(udpB)
清晰的异丙醇门调查portB udpB笔记
有关更多信息,请参见“控制仪器使用TCP / IP和UDP”部分的仪器控制工具箱文档:
7评论
沃尔特·罗伯森
沃尔特·罗伯森 2016年10月21日
Nabeel Afridi,可以写入文件()在二进制数组,或者你可以流()数组。上面的代码显示了一个发送的字符串,字符串 字符数组()。如果不固定大小的数组你可能想发送信息之前你发送数组大小。

登录置评。

答案(1)

维诺德
维诺德 2014年4月14日
编辑:MathWorks支万博1manbetx持团队 2023年4月27日在44
UDP协议并不能保证传输或数据包的顺序。
对于大多数应用程序,您可能希望使用TCPIP,像这样:
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2014年4月14日
实时通信要求TCP, UDP而非TCP数据包交付时间没有上限,以后不允许数据包交付。
TCP也不是用于任何形式的广播。
有效地以外的所有其他IP协议TCP是单向的,所以有很多不同的应用顺序保证交付是不合适的。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!