📄 get_big_file.cpp
字号:
#include "FileDowload.h"//客户端int main(int argc, char* argv[]){ int sockfd; int conn_ret; int dot_number = 0; int total_len = 0; int file_fd; char filename[20]; FILE * fout; size_t len = MAX_LEN; char sendbuf[NAME_LEN]; sendbuf[0] = '\0'; strcat(sendbuf,argv[3]); char recvbuf[MAX_LEN]; struct sockaddr_in servaddr; ssize_t error_flag; if(argc != 5){//如果输入不满足条件,提示并返回 printf("Usage: client <address> <port> <desname> <aliasname>\n"); return 0; } filename[0] = '\0'; strcat(filename,argv[4]); sendbuf[0] = '\0'; strcat(sendbuf,argv[3]); if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1){//建立套接字 perror("sock"); exit(1); } //填充地址 bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(atoi(argv[2])); inet_pton(AF_INET,argv[1],&servaddr.sin_addr); conn_ret = connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));//连接服务器端 if(conn_ret == -1){ perror("connect"); } if (write(sockfd,sendbuf,strlen(sendbuf))== -1){//传送请求的文件名字 perror("send"); exit(1); } fout = fopen(filename, "w");//打开文件,如果没有则创建 while ((error_flag = readall(sockfd,recvbuf,&len))==0){ if(len == 0){ printf("\nClient has received file!\n"); break; } printf("."); dot_number++; if((dot_number % DOT_PERIOD) ==0){ printf("\n"); dot_number = 0; } total_len+=len; if(writeall(fout,recvbuf,&len) == -1){ printf("\nclient has some error when receive the file!\n"); break; } len = MAX_LEN; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -