为什么用matlab的UDP接收不到数据

 我来答
huanglenzhi
2017-12-30 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517199
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  • 发送端

  • tic; 

  • load('data_test.mat');

  • s=cell(200,200); %定义待传输的数据

  • for i=1:200;

  • for j=1:200;

  • for k=1:201;

  • b(k)=data_test_im(i,j,k);%深度位数据

  • end

  • s(i,j)={[11,i,j,b]};%待传输数据

  • end

  • end

  • u1 = udp('127.0.0.1', 'RemotePort', 8866, 'LocalPort', 8844);%定义udp端口号和ip

  • u1.OutputBufferSize=8192;%传数据buffer大小

  • u1.Timeout=1000;%传输时间限制

  • fopen(u1); 

  • for i=1:200;

  • for j=1:200;

  • aa=s(i,j);

  • A=aa{:};

  • %flag=fread(u1,1,'char'); 

  • fwrite(u1,A,'double'); %传数据

  • end

  • flag=fread(u1,1,'char');

  • end

  • fclose(u1);

  • delete(u1);

  • clear u1;

  • toc;

  • 接收端

  • tic;

  • u2 = udp('127.0.0.1', 'RemotePort', 8844, 'LocalPort', 8866);

  • u2.InputBufferSize =8192;

  • u2.TimeOut=100;

  • fopen(u2);

  • u2.DatagramTerminateMode='off';

  • C=zeros(204,40000);

  • for i=1:40000;

  • %fwrite(u2,flag,'char');

  • if(mod(i,200)~=0)

  • C(:,i)=fread(u2,204,'float32');

  • else

  • fwrite(u2,flag,'char');

  • end

  • end

  • fclose(u2); 

  • delete(u2);

  • clear u2;

  • toc;

经过测试,可以接收。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式