非常简单的TCP/IP通信尝试,因为电脑只有一台,就只是试了一下本地通信,有机会试了远程主机通信,再来补充。
(注意:可以直接看最下面最后一次更改,上面相当于是试错,最后的简单又效率高)
1. 首先,建立服务器,代码如下:
t_server=tcpip('0.0.0.0',30000,'NetworkRole','server');%与第一个请求连接的客户机建立连接,端口号为30000,类型为服务器。
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);%从缓冲区读取数字数据
%%%%%%%%% data_recv=fscanf(t_server); %接收文本数据
catch
t_server.ValuesReceived%查看读取出的数据数量,如果没有读到,返回0;
end
end
2. 其次,建立客户机,代码如下:
t_client=tcpip('localhost',30000,'NetworkRole','client');%与本地主机建立连接,端口号为30000,作为客户机连接。
fopen(t_client);%与一个服务器建立连接,直到建立完成返回,否则报错。
data_send=sin(1:64);%发送的数字数据。
%%%%%%%% txt_send='HELLO'; %发送的文本数据
pause(1);%等待连接稳定,随意设置。
fwrite(t_client,data_send);%写入数字数据
%%