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;
    }




  • 相关阅读:
    tomcat启动与关闭脚本
    SqlAlchemy ORM
    python之socket
    python异常处理
    python常用模块
    PYTHON之文件操作
    Linux系统Load average负载详细解释
    tomcat报错:This is very likely to create a memory leak问题解决
    springcloud第一步:创建eureka注册服务
    SpringCloud微服务高级
  • 原文地址:https://www.cnblogs.com/lvdh1314/p/6479029.html
Copyright © 2011-2022 走看看