本文主要讲解MATLAB中的TCP/IP通信的字节接收方法与转换
1.建立TCP/IP链接我就不写了,网上教程一大堆,写点实用的——数据的接收
查阅matlab文档可以看到接收的几个函数,fgetl、fscanf、fread
fgetl是用来接收一行数据,如果用在socket中会出现延时,所以不建议
fscanf 语法:A = fscanf(tcpID,formatSpec,sizeA),其中tcpID是于打开的tcp端口,fomatSpec是以怎样的格式接收,size是大小。在tcp中推荐实用fscanf(tcpID,‘%c’,sizeA),这样基本没有延时,除非你传输的数据中含有中文字符,如果有中文字符推荐实用fread函数
fread
%判断是否有数据
if get(tcpipClient1,'BytesAvailable')>0
length = tcpipClient1.BytesAvailable; %获取数据的长度
data = fread (tcpipClient1,length); %读取数据是个bytes cell
disp(data);
break;
end
data = native2unicode(data,'UTF-8'); %实现由数组转换成UTF-8编码
data';2.讲解一下native2unicode
unicodestr = native2unicode(bytes);
unicodestr = native2unicode(bytes, encoding);
bytes是数组,可以是接收的ASCII
encoding支持’UTF-8’, ‘latin1’, ‘US-ASCII’, and ‘Shift_JIS’