2016-10-18 3 views
-2

Я не могу найти страницу документации QT, который определяет ошибки для функции подключения найденного в <sys/socket.h>страница документации для Qt подключения()

Причина:

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

Какая страница документа содержит информацию о том, почему это соединение терпит неудачу?

+0

Это QT-файл ''? –

+0

@BenceKaulics да, но поиск файла на странице документа не дает ничего – KGCybeX

+0

http://pubs.opengroup.org/onlinepubs/7908799/xns/connect.html –

ответ

1

connect() в <sys/socket.h> не является частью qt но POSIX, вы можете посмотреть на man page

А чтобы получить информацию о том, почему connect() терпит неудачу вы можете использовать perror():

Поскольку так много функции возвращают -1 на ошибку и устанавливают значение переменной переменной , чтобы быть некоторым числом, было бы неплохо, если бы вы могли легко распечатать это в форме, которая имела смысл для вас.

К счастью, perror() делает это. Если вы хотите, подробное описание, чтобы быть печататься перед ошибкой, вы можете указать параметр s к нему (или вы можете оставить с, как NULL, и ничего дополнительного будут напечатаны.)

В двух словах, эта функция принимает ERRNO значения, такие как ECONNRESET и , печатают их красиво, например, «Соединение сброшено сверстником».

Функции strerror() очень похож на PError(), за исключением того, что возвращает указатель на строку сообщения об ошибке для заданного значения (вы обычно прохода в переменном егто.)

if ((err = connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) 
    perror("connect"); 
Смежные вопросы