Re[3]: Не могу реально сбросить сокет TCP клиента. Как?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 04.05.12 06:49
Оценка:
Здравствуйте, Dimonira, Вы писали:

D>Здравствуйте, netch80, Вы писали:


N>>google://CLOSE_WAIT

N>>google://SO_REUSEADDR

D>Я же написал: поиск проводил, решения НЕ НАШЁЛ.


Этого недостаточно, надо указывать, какие именно методы не сработали. А то мало ли что искалось.

D>Никакие Disconnect(true) (аналог си-шной DisconnectEx с её TF_REUSE_SOCKET), уменьшение TcpTimedWaitDelay (может перезагружаться надо, хотя изначально было 30с, но и через это время ничего не реюзится), Close() сокета и приравнивание его к null, и т.д. — не помогли.


У Вас какая-то странная среда исполнения. Что именно это и какая версия? Судя по тексту, там где-то посреди дотнет, но что под ним, какая версия и т.д. — может существенно влиять.
Может, надо перенести обсуждение в дотнетовский форум, если это специфичная грабля рантайма.

D>Поскольку после закрытия клиента и повторного его запуска всё начинает работать, делаю вывод, что в системе копаться нет нужды. Что-то надо сделать в самой программе...


Для начала попробуйте отследить, что видно именно в сетевом стеке.
Например, по netstat -a (если это винда традиционного стиля) — есть соединение или нет? Занят порт или нет?
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.