C ++ проблема с сетью - моя ОС не отправляет - PullRequest
1 голос
/ 02 апреля 2012

Я написал приложение на 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.

Я не вижу нагрузки на сетевую карту или коммутатор. Пожалуйста, помогите мне!

спасибо

...