⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 get_big_file.cpp

📁 文件传输
💻 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 + -