MATLAB tcpip发送和接收文件

来源:互联网 发布:电脑突然连接不上网络 编辑:程序博客网 时间:2024/06/17 05:07

发送方为server,接收方为client,建立TCP链接。

发送方:

function sendfile( filename,ip,port )%SENDFILE 读取文件并发送出去%   filename:文件名%   ip:目的主机的ip地址%% 先打开文件fid = fopen(filename ,'rb');if( fid<=0 )    fprintf('打开失败!\n');    return;end% 然后判断文件是不是过大Data = fread(fid);fclose(fid);L = length(Data);if( L>1e6 )    fprintf('文件太大了!\n');    return;end% 建立tcp链接,发送方为serversender = tcpip(ip,port,'NetworkRole','server');sender.OutputBufferSize = 1e6;fopen(sender);fwrite(sender,L,'uint32');fwrite(sender,Data);ack = fread(sender,2);fclose(sender);ack = char(ack');if( strcmp(ack,'ok') )    fprintf('发送成功!\n');endend

接收方

function    recvfile( filename,ip,port )%FILENAME 接收文件并保存%  recvfile(filename)%  filename:保存的文件名%  ip:发送方的ip地址%  port:端口号%建立一个tcp对象listen = tcpip(ip,port,'NetworkRole','client');listen.InputBufferSize = 1e6;%等待响应fopen(listen);                      %先得到文件的大小SIZE = fread(listen,1,'uint32');           %接收文件内容data = fread(listen,SIZE);        %接收成功确认fwrite(listen,'ok');%关闭链接fclose(listen);%写入文件fid = fopen(filename,'wb');fwrite(fid,data);fclose(fid);fprintf('接收成功并且已经写入文件\n');end
0 0
原创粉丝点击