• TCP打开文件传输(客户端code)


    #include <stdio.h>
    #include <stdlib.h>
    #include <arpa/inet.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <sys/time.h>
    #include <netinet/in.h>
    #include <errno.h>
    #include <unistd.h>

    #define MAXLINE 4096

    void str_cli(FILE *fp, int sockfd) {
      int n;
      char sendline[MAXLINE+1], recvline[MAXLINE+1];

      if((fp = fopen("/root/iplist", "r")) == NULL) {
        printf("fopen error");
        exit(-1);
      }

      while(fgets(sendline, MAXLINE, fp) != NULL) {
        if((write(sockfd, sendline, strlen(sendline))) != strlen(sendline)) {
          printf("write error\n");
          exit(-1);
        }

        if((n=read(sockfd, recvline, MAXLINE)) < 0) {
          printf("read error\n");
          exit(-1);
        }
        recvline[n]=0;

        if(fputs(recvline, stdout) == EOF) {
          printf("fputs error\n");
          exit(-1);
        }
      }

      if(fclose(fp) == EOF) {
        printf("fclose error\n");
        exit(-1);
      }
    }

    int main(int argc, char **argv) {
      int sockfd;
      struct sockaddr_in servaddr;
      FILE *fp;

      if(argc != 2) {
        printf("usage: a.out <IPaddress>\n");
        exit(-1);
      }

      if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
        printf("socket error");
        exit(-1);
      }

      bzero(&servaddr, sizeof(servaddr));
      servaddr.sin_family=AF_INET;
      servaddr.sin_port=htons(8000);

      if(inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0) {
        printf("inet_pton error");
        exit(-1);
      }

      if(connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0) {
        printf("connect error");
        exit(-1);
      }

      str_cli(fp, sockfd);

      exit(0);
    }

    客户端打开本地文件,发送给服务器端,然后服务器端再把内容回射回来。

  • 相关阅读:
    Xen虚拟机的创建和启动
    Linux Shell编程基础
    虚拟化的概念
    Android XML解析
    Android数据存储之文件存储
    Android GPRS开关软件(APN开关)
    数据中心
    debian下dos2unix的安装
    linux Shell重定向
    GPRS开关软件一些问题的解决方法
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/8682109.html
Copyright © 2020-2023  润新知