SO_KEEPALIVE и опрос - PullRequest
       2

SO_KEEPALIVE и опрос

1 голос
/ 07 марта 2012

Здравствуйте, я пытаюсь использовать следующий код, но, кажется, не работает, на подключенная розетка (носок) я делаю:

struct pollfd input_fd; 
int a=1; 
setsockopt(sock,SOL_SOCKET,SO_KEEPALIVE,&a,sizeof(a)); 
a=1; 
setsockopt(sock,SOL_TCP,TCP_KEEPIDLE,&a,sizeof(a)); 
a=1; 
setsockopt(sock,SOL_TCP,TCP_KEEPINTVL,&a,sizeof(a)); 
a=1; 
setsockopt(sock,SOL_TCP,TCP_KEEPCNT,&a,sizeof(a)); 
input_fd.fd = sock; 
input_fd.events = POLLIN | POLLOUT; 
input_fd.revents = 0; 
int p=poll(&input_fd, 1,-1); 

Я подключаю разъем локальной сети к удаленному компьютеру, но ничего не происходит. ядро, кажется, спит в системном опросе. Это желательно? поведение, или это дефект?

1 Ответ

0 голосов
/ 07 марта 2012

Установить nfds:

int p=poll(&input_fd, sock+1 ,-1); 

Кроме того, я не уверен в допустимом диапазоне этих настроек, стоит проверить возвращаемое значение setsockopt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...