在两台电脑之间实现数据传输TCP——通过matlab

基于MATLAB的TCP实现两台电脑之间数据的传输,接收数据电脑设置为服务机,发送数据电脑设置为客户机,两台电脑同时连上局域网(热点)之后,查看两台电脑的IP地址,MATLAB中调用tcpip函数,由于MATLAB通用端口为80,设置端口80,设置发送/接受缓存区后,即可实现通信(用校园网之类的不行),相互传输数据。
在两台电脑之间实现数据传输TCP——通过matlab_第1张图片
(该图为网图,非本人所画)

上代码:

%% 主机
t_server=tcpip('0.0.0.0',30000,'NetworkRole','server');%与第一个请求连接的客户机建立连接,端口号为30000,类型为服务器。
t_server.InputBuffersize=200000;%设置最大缓冲区
fopen(t_server);%打开服务器,直到建立一个TCP连接才返回;
try_times=100;%尝试读取缓冲区数据的次数,可随意设置;
for i=1:try_times
    pause(0.02);%每次读取之前等待0.02s,随意设置
    try     %因为fread()在缓冲区没有数据的时候读取会报错,因此用try—catch语句忽略这种错误,直到读取到数据。
        data_recv=fread(t_server,t_server.BytesAvailable);%从缓冲区读取数字数据
    catch
        t_server.ValuesReceived;%查看读取出的数据数量,如果没有读到,返回0;
    end
end
disp(data_recv');%数据是一个个传输的,读取的数据是也一个个读取的,是列数据,转置变成行数据更好显示
%% 客户机
%% 客户机
echotcpip('off')
echotcpip('on',80)
t_client=tcpip('192.168.3.83',30000,'NetworkRole','client');%与本地主机建立连接,端口号为30000,作为客户机连接。
% t_client=tcpip('192.168.43.146',80,'NetworkRole','client');
% set(t_client,'InputBufferSize',4500000);
% set(t_client,'OutputBufferSize',300);
set(t_client,'Timeout',300);
fopen(t_client);%与一个服务器建立连接,直到建立完成返回,否则报错。
data_send=[5 7 4 0 1 2 1 4 3 7 2 7 9];%发送的数字数据。
pause(1);%等待连接稳定,随意设置。
fwrite(t_client,data_send);%写入数字数据
fclose(t_client);
echotcpip('off')
data_send

代码灵感来源:https://blog.csdn.net/qq_18820125/article/details/88391596
可以在一台电脑上同时运行两个matlab(先运行主机,再运行客户机),检查传输效果:
在两台电脑之间实现数据传输TCP——通过matlab_第2张图片
如何查看ip地址:(上文的:‘192.168.3.83’)——主机的
同时按住win+r
输入cmd,确定
在两台电脑之间实现数据传输TCP——通过matlab_第3张图片
找到IPv4地址,即是需要的ip地址:
在两台电脑之间实现数据传输TCP——通过matlab_第4张图片

你可能感兴趣的:(matlab,matlab,tcp/ip,网络)