完整代码地址:/u/ShawnL/p/tcp_file_server/git
1、服务端
2、客户端
recv()函数,默认是阻塞状态,返回值如下
大于0:接受成功,返回接受到的字节数
-1:接受失败
0:当对端关闭连接时,本端接收完毕,才会返回0;
所以,客户端的循环接收数据可以这样写。
切记,服务端发送完数据,一定要关闭链接,否则客户端会一直阻塞等待。
while( (nrd = recv(servfd, buff, sizeof(buff), 0)) > 0 ){if ( (nwr = write(fdwr, buff, nrd)) < 0 ){perror("write fail");return -1;}}