- TIME_WAIT, XMan, 17:10 , 23-Авг-04 (1)
setsockopt(сокет,SOL_SOCKET,SO_REUSEADDR,(char *)&i,sizeof(i))где int i=1 man socket
- TIME_WAIT, Brick, 15:11 , 25-Авг-04 (2)
>setsockopt(сокет,SOL_SOCKET,SO_REUSEADDR,(char *)&i,sizeof(i)) > >где int i=1 > >man socket это только отключает сообщение об ошибке:"address already in use", а мне надо, чтобы соединения именно пропадали, а они висят,как зомби :(
- TIME_WAIT, klalafuda, 16:13 , 25-Авг-04 (3)
>>setsockopt(сокет,SOL_SOCKET,SO_REUSEADDR,(char *)&i,sizeof(i)) >> >>где int i=1 >> >>man socket > >это только отключает сообщение об ошибке:"address already in use", а мне надо, >чтобы соединения именно пропадали, а они висят,как зомби :( правильный ответ - никак. за подробностями "почему" почитайте умные книжки типа Стивенса. // wbr
- TIME_WAIT, XMan, 18:32 , 25-Авг-04 (4)
klalafuda правильно сказал. Единственное неудобство такого состояния - это невозможность запустить программу еще раз, пока состояние не отвалится. В разных ОС на это отводится разное время, но обычно порядка 2-3 минут.Потому я тебе и сказал пользовать REUSE_ADDR. Это не "только отключает сообщение об ошибке" - это позволяет опять захватить этот порт без ожидания этих самых 2-3 минут.
- TIME_WAIT, klalafuda, 18:38 , 25-Авг-04 (5)
>klalafuda правильно сказал. Единственное неудобство такого состояния - это невозможность запустить программу >еще раз, пока состояние не отвалится. В разных ОС на это >отводится разное время, но обычно порядка 2-3 минут. > >Потому я тебе и сказал пользовать REUSE_ADDR. Это не "только отключает сообщение >об ошибке" - это позволяет опять захватить этот порт без ожидания >этих самых 2-3 минут. ну тогда уж SO_REUSEPORT ---man getsockopt--- SO_REUSEPORT enables duplicate address and port bindings ---man getsockopt--- // wbr
- TIME_WAIT, XMan, 19:51 , 25-Авг-04 (6)
В данном случае они одинаковы по своему действию.
- TIME_WAIT, qq, 01:42 , 26-Авг-04 (7)
>Добрый день! > >Как заставить приложение не оставлять соединений такого типа: "tcp4 > 0 0 >192.168.0.1.63009 192.168.0.1.2156 > TIME_WAIT"??? > >Всем заранее спасибо.вот, чё люди пишут по этому поводу: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&c2coff=1&...$%p1.105867406@newssvr30.news.prodigy.com TIME_WAIT is the state that a socket goes into _after_ a graceful shutdown has been completed, and it stays there for four minutes (2*MSL, to be exact). This is, however, a normal and desired state for such a socket to be in, so that any packets, duplicated, retried, or erroneous, still bouncing around in the network get a proper response. TIME_WAIT is good. In a properly written socket stack, TIME_WAIT sockets aren't as "heavy" as open sockets (they only need to contain the source and remote addresses and ports, and the fact that the socket is in TIME_WAIT state), and so shouldn't noticeably impact the number of other sockets that can be open.
|