socket编程实现文件传输,基于tcp的文件传输
int main()//服务端,文件发送方
{
WSADATA wa
WSAStartup(0x0202,wa);
SOCKET sock=socket(AF_INET,SOCK_STREAM,0);
sockaddr_in sa={ AF_INET,0x4512,{127,0,0,1} },sb;
bind(sock,(sockaddr*) sa,sizeof(sa));
听(袜子,128);
int len=sizeof(sa);
SOCKET socka=accept(sock,(sockaddr*) sb,len);
cout 链接成功;
FILE * FILE=fopen( C:\ \ Users \ \ Administrator \ \ Desktop \ \ test \ \ aa。zip , Rb );
WIN32 _ FIND _ DATAA a;
FindFirstFileA( C:\ \ Users \ \ Administrator \ \ Desktop \ \ test \ \ aa。拉链,
long long I=((long long)a . nfilesizehigh 32) a . nfilesizelow;//获取文件大小
long long count=(I/1024 1);
char buf[1024];
int glen
int n=0;
send(socka,(char*) count,sizeof(count),0);//发送循环次数
睡眠(500);
while (glen=fread(buf,1,1024,file))
{
send(socka,(char*) glen,sizeof(glen),0);
send(socka,(char*)buf,glen,0);
法院发送了格伦字节恩德尔
}
recv(sock,0,0,0);//等待客户端接收完毕
闭合插座(袜子);
fclose(文件);
返回0;
}
int main()//客户端,建立链接接收数据
{
FILE * FILE=fopen( C:\ \ Users \ \ Administrator \ \ Desktop \ \ test \ \ bb。zip , WB );
WSADATA wa
WSAStartup(0x0202,wa);
SOCKET sock=socket(AF_INET,SOCK_STREAM,0);
sockaddr_in sa={ AF_INET,0x4512,{127,0,0,1 } };
sockaddr_in sb={ AF_INET,8415,{127,0,0,1 } };
bind(sock,(sockaddr*) sb,sizeof(sa));
connect(sock,(sockaddr*) sa,sizeof(sa));
龙龙计数{ 0 };
recv(sock,(char*) count,sizeof(count),0);//获取文件接收次数
char buf[1024];
int n=0;
而(计数-)
{
理解
recv(sock,(char*) nsize,sizeof(nsize),0);
recv(sock,(char*)buf,1024,0);
法院接收了 fwrite(buf,1,nsize,file)字节endl
}
send(sock,0,0,0);
fclose(文件);
返回0;
} 评论0 发布评论
qq5c0b6a8addfe5
2022-04-20 22:50
评价不靠谱日后改良
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。