Ошибка использования сокета при повторном использовании сокетов

Я пишу клиент XMLRPC на C ++, который предназначен для общения с сервером Python XMLRPC.

К сожалению, в настоящее время сервер Python XMLRPC может отправлять только один запрос на соединение, затем он отключается, я обнаружил это благодаря mhawke 'ответ на мой предыдущий запрос освязанный предмет

Из-за этого мне приходится создавать новое сокет-соединение с моим сервером Python каждый раз, когда я хочу сделать запрос XMLRPC. Это означает создание и удаление множества сокетов. Все отлично работает, пока не подойду ~ 4000 запросов. В этот момент я получаю ошибку сокета10048, гнездо в использовании.

мы пытались перевести поток в режим ожидания, чтобы позволить winsock исправить свои файловые дескрипторы, - хитрость, которая работала, когда у моего клиента Python была идентичная проблема, но безрезультатно. Я'мы пробовали следующее

int err = setsockopt(s_,SOL_SOCKET,SO_REUSEADDR,(char*)TRUE,sizeof(BOOL));

без успеха.

я использую winsock 2.0, поэтому WSADATA :: iMaxSockets не долженне вступил в игру, и в любом случае, я проверил, и его значение установлено в 0 (я предполагаю, что это означает бесконечность)

4000 запросов неНе похоже на невероятное количество запросов, сделанных во время работы приложения. Есть ли какой-нибудь способ использовать SO_KEEPALIVE на стороне клиента, пока сервер постоянно закрывается и снова открывается?

Я что-то пропустил?

Ответы на вопрос(3)

Ваш ответ на вопрос