需求:创建一个文件服务器;要求保存客户端上传的所有文件,100 个并发,每个并发客户端上传文件100次
以下是核心代码
首先是客户端发送文件:
for (sum = 0; sum < size;) { memset(bufcontent, 0x0, sizeof(bufcontent)); ret = fread(bufcontent, 1, 1240, fp); if (ret < 0) { perror("read error!"); break; } if (0 > (ret = Sendn(sockfd, bufcontent, ret))) { perror("send error!"); break; } sum += ret; }
然后是服务端接收代码文件:
1 for (sum = 0; sum < iFileLength;) 2 { 3 if (iFileLength - sum < 1240) 4 { 5 ret = recv(connfd, content_buf, iFileLength - sum, 0); 6 } 7 else 8 { 9 ret = recv(connfd, content_buf, 1240, 0); 10 } 11 if (ret < 0) 12 { 13 perror("Recvn error!"); 14 return NULL; 15 } 16 C_LOG(LOG_DEBUG, "接收到%d字节数\n", ret); 17 ret = fwrite(content_buf, 1, ret, fp); 18 if (ret < 0) 19 { 20 perror("fwrite error!"); 21 return NULL; 22 } 23 sum += ret; 24 memset(content_buf, 0, sizeof(content_buf)); 25 }
亲测上传1万个文件,每个1m,时长为13分钟(受网速影响)
标签:总结,文件,buf,sum,ret,content,服务器,上传 From: https://www.cnblogs.com/xingming/p/16731858.html