socket

作者: 遇银 | 来源:发表于2021-08-05 11:21 被阅读0次

    socket connect阻塞和非阻塞处理

    1. 定义信号处理函数
      //外面定义一个中断信号处理函数u_alarm_handler,用于超时后的报警处理
      void u_alarm_handler()
      {
          printf("connect time out \n");
      }
      
      //指定信号回调函数
      sigset(SIGALRM, u_alarm_handler);
      //定义一个2秒的定时器
      alarm(2);
    
      //服务器地址初始化
      memset(&server_addr, 0, sizeof(struct sockaddr_in));
      server_addr.sin_family = AF_INET;
      server_addr.sin_addr.s_addr = inet_addr(ip);
      server_addr.sin_port = htons(port);
    
      ret = connect(clientfd, (struct sockaddr*)&server_addr, server_len);
      if(ret < 0)
      {
          return -1;
      }
      
      alarm(0);
      sigrelse(SIGALRM);
    

    相关文章

      网友评论

          本文标题:socket

          本文链接:https://www.haomeiwen.com/subject/wmrmvltx.html