информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
closesocket under Redhat 11.06.02 14:45  Число просмотров: 934
Автор: cb <cb> Статус: Member
<"чистая" ссылка>
> Под nix существует closesocket() ?
> Почему то такой ф-ии не нашел. Нет ни в man, ни в
> библиотеках.
> Если её нет, то как закрыть сокет ? Пробовал shutdown и
> close - не вышло. Следующий bind говорит, что сокет уже
> прибайнден.

насколько я знаю для закрытия сокета достаточно вызвать
close(socket)

проблема с bind к закрытию сокета имеет косвенное отношение:
по rfc закрытие tcp соединения происходит в несколько фаз, продолжительность этих фаз зависит от топологии сетки, посему после закрытия сокета tcp порт некоторое время считается занятым. для решения этой проблемы я пользовал

int state = 1;
::setsockopt(socket, SOL_SOCKET, SO_REUSEADDR, (const char*)&state, sizeof(int));

cb.
<programming>
closesocket under Redhat 10.06.02 17:26  
Автор: PS <PS> Статус: Elderman
Отредактировано 11.06.02 12:56  Количество правок: 1
<"чистая" ссылка>
Под nix существует closesocket() ?
Почему то такой ф-ии не нашел. Нет ни в man, ни в библиотеках.
Если её нет, то как закрыть сокет ? Пробовал shutdown и close - не вышло. Следующий bind говорит, что сокет уже прибайнден.
closesocket under Redhat 11.06.02 14:45  
Автор: cb <cb> Статус: Member
<"чистая" ссылка>
> Под nix существует closesocket() ?
> Почему то такой ф-ии не нашел. Нет ни в man, ни в
> библиотеках.
> Если её нет, то как закрыть сокет ? Пробовал shutdown и
> close - не вышло. Следующий bind говорит, что сокет уже
> прибайнден.

насколько я знаю для закрытия сокета достаточно вызвать
close(socket)

проблема с bind к закрытию сокета имеет косвенное отношение:
по rfc закрытие tcp соединения происходит в несколько фаз, продолжительность этих фаз зависит от топологии сетки, посему после закрытия сокета tcp порт некоторое время считается занятым. для решения этой проблемы я пользовал

int state = 1;
::setsockopt(socket, SOL_SOCKET, SO_REUSEADDR, (const char*)&state, sizeof(int));

cb.
closesocket under Redhat 11.06.02 13:19  
Автор: YURICH Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Под nix существует closesocket() ?
> Почему то такой ф-ии не нашел. Нет ни в man, ни в
> библиотеках.
> Если её нет, то как закрыть сокет ? Пробовал shutdown и
> close - не вышло. Следующий bind говорит, что сокет уже
> прибайнден.
fclose?
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach