qt connect()的文档页面

时间:2016-10-18 10:06:24

标签: c

我无法找到QT文档页面,该页面指定<sys/socket.h>

中找到的连接函数的错误

原因:

int err = connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)); 

返回-1,

socket.h文件:

/* Open a connection on socket FD to peer at ADDR (which LEN bytes long).
   For connectionless socket types, just set the default address to send to
   and the only address from which to accept transmissions.
   Return 0 on success, -1 for errors.

   This function is a cancellation point and therefore not marked with
   __THROW.  */
extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);

哪个doc页面提供了有关此连接失败原因的信息?

1 个答案:

答案 0 :(得分:1)

connect()中的{p> <sys/socket.h>不是qt的一部分,而是POSIX的一部分,您可以查看man page

要获取有关connect()失败原因的信息,您可以使用perror()

  

由于这么多函数在出错时返回-1并设置了该值   变量errno是一些数字,如果可以,肯定会很好   以对您有意义的形式轻松打印出来。

     

幸运的是,perror()就是这么做的。如果您想要更多描述   在错误之前打印,你可以将参数s指向它(或者你   可以将s保留为NULL,并且不会打印任何其他内容。)

     

简而言之,此函数采用errno值,如ECONNRESET和   打印得很好,比如#34;连接由同行重置。&#34;

     

函数strerror()与perror()非常相似,只是它返回   指向给定值的错误消息字符串的指针(通常是   传入变量errno。)

if ((err = connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
    perror("connect");
相关问题