Почему параметр SO_LINGER не вступил в силу?Linux

Ответить
Anonymous
 Почему параметр SO_LINGER не вступил в силу?

Сообщение Anonymous »


so_linger в сокете управляет функцией close() для закрытия сокета.

когда l_onoff установлен в 0, сокет отбрасывает данные в буфере и возвращает их при вызове close;
Когда l_onoff установлен в 1, а l_linger установлен в 0, сокет возвращает первое сообщение на другой конец, если в буфере есть данные;
Когда l_onoff установлен в 1, а l_linger больше 0, если данные существуют в буфере, он будет ждать размера l_linger, а затем вернется.

Но, похоже, при тестировании параметра so_linger это не так.

Когда я исследовал сокеты и просматривал параметр SO_LINGER, я выполнил следующий тест:

/* server.cc */ #include #include #include #include #include #include #include #include #include #include недействительный сервис (INT порт = 11115) { // создаем структуру адреса структура sockaddr_in serv_addr; serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons (порт); serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); std::cout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»