Я написал приложение на c ++, которое отправляет данные по tcp-соединению на несколько машин. Как часть протокола, который я использую в своем приложении, другая сторона время от времени отправляет сообщения beatbeat, тогда я знаю, что соединение все еще живо ,
Теперь я хочу, чтобы это приложение работало на 100 и более машинах одновременно. но я вижу, что иногда я не получаю эти сообщения пульса, хотя они отправляются: я вижу в wireshark, что пакет прибыл, тогда моя ОС не подтверждает это сообщение, поэтому есть некоторые повторные передачи без какого-либо подтверждения от моей ОС. если я смотрю в свойство размера окна - я увидел, что в этой части нет проблем. что может быть причиной такого поведения? это что-то в моем коде, что я должен изменить?
это мой выбранный код:
while(it != sockets.end() ){
FD_SET((*it), &readFds);
if( (int)(*it) > fdCount ){
fdCount = *it;
}
it++;
}
int res = select(fdCount, &readFds, NULL, NULL, NULL );
I'm using server 2008 r2.
Я не вижу нагрузки на сетевую карту или коммутатор.
Пожалуйста, помогите мне!
спасибо