环境:WIN10专业版,64位。 matlab 2019.
本次改变了读取方式,修改读取char字符, 速度就很快了
核心改变如下:
dataReceive=fread(tcpip_server, tcpip_server.BytesAvailable, "char");?
****
全部代码如下
% 按照下面的IP地址建立一个服务端,0.0.0.0地址可以监听所有的请求的IP地址,所以就不用再写客户端的IP了
tcpip_server= tcpip('0.0.0.0',6000,'NetworkRole','server');
%%同理,接收端也要设置个缓冲区才能存下发过来的数据。
tcpip_server.InputBuffersize=512;
%打开服务器,直到建立一个TCP连接才返回;
fopen(tcpip_server);
%发送给采集卡的启动指令
fwrite(tcpip_server,"com_start_ch1");
%读取数据。参数’tcpip_server.BytesAvailable/8‘代表着读取几个数据
xunhun_cishu=0;
A=[48];
try_times=400;
for i=1:try_times
%pause(0.01);%每次读取之前等待0.02s,随意设置
try %因为fread()在缓冲区没有数据的时候读取会报错,因此用try—catch语句忽略这种错误,直到读取到数据。
dataReceive=fread(tcpip_server, tcpip_server.BytesAvailable, "char");
B=transpose(dataReceive);%数组转置
disp(B);
xunhun_cishu=xunhun_cishu+1;
A = [A B];%数组拼接
catch
tcpip_server.ValuesReceived%查看读取出的数据数量,如果没有读到,返回0;
end
end
fclose(tcpip_server);
|