Здравствуйте, butcher, Вы писали:
B>Почитайте этотАвтор: Michael Chelnokov
Дата: 24.01.03
топик, может поможет.
это я читал

собственно так оно и сделано...
B>Вот ещё MSDN:
B>B>If an application needs to quit while a blocking call is outstanding, the application must first cancel the blocking call with WSACancelBlockingCall then issue the WSACleanup call once control has been returned to the application.
и с MSDNом я тоже дружу

. WSACancelBlockingCall относится к старой реализации винсокетов. Пробовал я делать этот вызов, но помочь он ничем не смог...
Наблюдается следующая картинка :
я вызвал shutdown и closesocket для всех сокетов, но иногда потоки в которых проходят прослушивание, чтение и запись не завершаются. А завершаться они должны по принципу : возвратилась ошибка, выйти из потока. Видимо не всегда происходят выходы. Забыл я еще упомянуть о факте работы rpc в сервере. Возможно rpc как то влияет и блокирует WSACleanup. Старый добрый MSDN не содержит к сожалению решений подобных ситуаций...
Может прибиение rpc как то блокирует сокеты приложения ??? Но почему первый WSACleanup проходит хорошо (он кстати пока не выгружает ws2_32.dll, а только лишь декремент выполняет), а второй блокируется (вот этот и выполняет выгрузку ws2_32.dll). Стоит отметить, что ранее я прибивал потоки через TerminateThread, но потом следуя рекомендации Дж.Рихтера сделал выход из потока внутри через rerurn. Раньше это все работало без rpc. Но пришла беда на нашу землю и .... о чем это я ?