Итак, я почти выполнил задание, связанное с программированием Win32 и сокетами, но мне нужно сгенерировать и проанализировать некоторую статистику о передачах. Единственная проблема, с которой у меня возникли проблемы, - это вычислить количество пакетов, отправленных на сервер от клиента.
Отправленные данные могут быть переменной длины, поэтому я не могу просто разделить общее количество байтов на значение #define'd.
Мы должны использовать асинхронные вызовы, чтобы делать все, поэтому я пытался увеличивать счетчик с каждым сообщением FD_READ, которое я получаю для сокета сервера. Однако, поскольку я должен принимать потенциально большой размер файла, мне приходится вызывать recv / recvfrom с размером буфера около 64 КБ. Если я отправлю небольшой пакет (a-z), проблем не будет. Но если я отправляю строку из 1024 символов 10x, сервер сообщает о 2 или 3 полученных пакетах, но 0% потери данных с точки зрения отправленных / полученных байтов.
Есть идеи, как получить количество пакетов?
Заранее спасибо :)