![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Socket and TIME_WAIT [Win95/98]
balepa © (2006-03-20 13:50:00)Как закрыть сокет чтобы не было TIME_WAIT если возможно без уничтожения хэндла?
Rouse_ (2006-03-21 15:42:00) [1]В крайнем сучае делай
Opt := 1;
setsockopt(FServer, SOL_SOCKET, SO_REUSEADDR, @Opt, SizeOf(Opt))
balepa (2006-03-21 09:14:00) [2]экскузимуа
http://support.microsoft.com/default.aspx?scid=kb;en-us;137984
не совсем про TIME_WAIT
Но проблема вродерешилась. Закрываю сокет, создаю новый. Но почему на др. компах до этого не открывался новый порт, а "долбился" в открытый который в состоянии TIME_WAIT (при Port = 0), а у меня нормально работает в обоих случаях ?
Сергей М. (2006-03-21 08:12:00) [3]
> balepa © (21.03.06 05:08) [6]
Что-то я не вижу по приведенной ссылке ничего похожего на TAIM_WAIT.
balepa (2006-03-21 07:27:00) [4]
> balepa © (21.03.06 05:08) [6]
p.s: У остальных Addres in use
balepa (2006-03-21 05:08:00) [5]
> Сергей М. © (20.03.06 14:10) [3]
> Откуда цитата ?
> Приведи ссылку на первоисточник ..
http://support.microsoft.com/kb/q150523/#kb1
> Eraser © (20.03.06 14:17) [4]
Так и делаю каждый раз открывается новый порт, на моем компе работает на др. нет
> Rouse_ © (20.03.06 14:28) [5]
>shutdown уже не в почете?
Не знаю посмотрю
Rouse_ (2006-03-20 14:28:00) [6]shutdown уже не в почете?
Eraser (2006-03-20 14:17:00) [7]
> balepa © (20.03.06 14:02) [2]
выход один - не используй ту же "socket pair", по-умолчанию клиент должен в качестве своего (Bound) порта принимать эфимерный порт со случайным номером, т.е. указываешь 0.
Сергей М. (2006-03-20 14:10:00) [8]
> balepa © (20.03.06 14:02) [2]
Откуда цитата ?
Приведи ссылку на первоисточник ..
balepa (2006-03-20 14:02:00) [9]When a TCP connection is closed correctly, the connection changes to a TIME_WAIT state.
While a connection is in the TIME_WAIT state, the socket pair cannot be re-used.
после закрытия порт в состоянии TIME_Wait и к нему не возможно подключиться пока не пройдет несколько мин (вроде 4 или 2)
Сергей М. (2006-03-20 13:56:00) [10]
> Как закрыть сокет
> без уничтожения хэндла
Никак.
Закрытие сокета и есть его уничтожение (closesocket(хэндл)).
> чтобы не было TIME_WAIT
Что за TIME_WAIT ?