подвисает сокет
От: drummer  
Дата: 07.06.05 17:52
Оценка:
привет! может такая проблема уже возникала... я вроде не нашел на форуме.
суть вот в чем — есть соединение через сокеты — асинхронные поточные.
пишу в них через WriteFile. Соответственнго жду соответствующих событий о доставке/получении информации.

проблема в том, что в определенный момент — может после 100го пакета, может после 1000го — сокет затыкается — то есть мне не приходит событие о доставке сообщения — и когда я в следующий раз пытаюсь послать пакет и вижу, что еще не пришел ответ на предыдущий — я смотрю с помощью WSAGetOverlappedResult текущий статус — мне приходит ошибка — WSAGetLastError выдает WSA_IO_INCOMPLETE. И все... сколько я потом не жду — ничего не происходит. связь при этом есть — никакого FD_CLOSE не приходит.
Я добавил служебный пакет — раз в некоторый промежуток слался бы и в случае "затыка" сокет закрывается, связь рвется и соединяется заново. Но! проблема в том, что даже новый сокет после этого не реагирует — как будто и не закрывал его... хотя то, что закрывал/удалял/создавал заново — факт.
Помогает лишь перезагрузка приложений на обоих концах.
Скажите, сталкивался ли кто с такой проблемой и если да, то как ее решали?

Я, честно говоря, не очень хорошо знаком с сокетами, поэтому вполне можно грешить на мои руки — просто я даже не знаю в какую сторону дальше рыть/разбираться...

Заранее спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.