zoukankan      html  css  js  c++  java
  • 基于TCP协议的客户端编程

    #include <netdb.h>
    #include <sys/socket.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <memory.h>
    #include <unistd.h>

    int main(int argc, char *argv[])
    {
        if (argc < 3)
        {
            printf("usage:%s ip port ",argv[0]);
            exit(1);
        }
        
        /*步骤1:创建socket*/
        int sockfd = socket(AF_INET,SOCK_STREAM,0)
        if (sockfd < 0)
        {
            perror("socket error");
            exit(1);
        }
        //往serveraddr中填入ip、port和地址族类型(ipv4)
        struct sockaddr_in serveradd;
        memset(&serveradd,0,sizeof(serveraddr));
        serveraddr.sin_family = AF_INET;
        serveraddr.sin_port = htons(atoi(argv[2]));
        //将ip地址转换成网络字节序后填入serveraddr中
        inet_pton(AF_INT,argv[1],&serveraddr.sin_addr.s_addr);
        
        /*  步骤2:客户端调用connect函数连接到服务器端*/
        if(connect(sockfd,(struct sockaddr*)&serveraddr,sizeof(serveraddr)) < 0  )
        {
           perror("connect error");
           exit(1);
        }    
        
        /*步骤3 : 调用IO函数(read/write)和服务器段进行双向通信*/
        char buffer[1024];
        memset(buffer,0,sizeof(buffer));
        size_t size;
        if((size = read(sockfd,buffer,sizeosf(buffer))) < 0  )
         {
            perror("read error");
         }    
         if(write(STDOT_FILENO,buffer,size) != size)
         {
            perror("write error");
         }
        
         /*步骤4 :关闭socket套接字*/
         close(sockfd);
        
        return 0;
    }




  • 相关阅读:
    使用ParseExact方法将字符串转换为日期格式
    Windows 备用数据流(ADS)的妙用___转载
    ms17_010利用复现(32位)
    将手机号设置为空号
    PowerShell批量创建文件夹
    让程序显示运行时间
    使用Sleep方法延迟时间
    使用TimeSpan对象获取时间间隔
    DateTime小综合
    DDMS介绍
  • 原文地址:https://www.cnblogs.com/lvdh1314/p/6479029.html
Copyright © 2011-2022 走看看