Здравствуйте,
есть готовое приложение, использующее CSocket из MFC.
Наблюдаются некоторые проблемы, предполагаю, что из-за кривизны CSocket.
Вопрос, на что можно заменить CSocket относительно малой кровью?
Здравствуйте, Head Ache, Вы писали:
HA>Здравствуйте, HA>есть готовое приложение, использующее CSocket из MFC. HA>Наблюдаются некоторые проблемы, предполагаю, что из-за кривизны CSocket. HA>Вопрос, на что можно заменить CSocket относительно малой кровью?
Здравствуйте, Head Ache, Вы писали:
HA>Здравствуйте, HA>есть готовое приложение, использующее CSocket из MFC. HA>Наблюдаются некоторые проблемы, предполагаю, что из-за кривизны CSocket. HA>Вопрос, на что можно заменить CSocket относительно малой кровью?
А в чем, собственно, проблема? Исходники MFC открыты. Подменяете класс подправленным и все.
HA>есть готовое приложение, использующее CSocket из MFC. HA>Наблюдаются некоторые проблемы, предполагаю, что из-за кривизны CSocket.
Это в высшей степени маловероятно. Если я правильно помню, CSocket — это весьма примитивная обертка над BSD socket API, и ничего особого кривого в нем быть не может.
Здравствуйте, okman, Вы писали:
O>А в чем кривизна, если не секрет ?
1. Надо блокировки нормальные либо из сокетов, либо ядра, а не через очередь сообщений виндоуз.
2. Избавиться от дурацких глобальных массивов MFC, которые учитывают каждый CObject и используют TLS.
Кажется, есть какая-то проблема с TLS, но хз как отловить. А может, еще с каким-то ресурсом.
Юнит-тесты проходят нормально, но то же в составе полной сборки непонятные зависания вызывает.
Причем под отладчиком нельзя прогнать, т.к. требуется высокая нагрузка для получения багов.