У меня есть код, который использует блокирующий сокет для получения данных через вызов в recv. Все работает просто отлично. Однако нет способа сообщить пользователю количество байтов, загруженных в любой точке процесса. Я предполагаю, что для того, чтобы сделать это, мне нужно будет сделать несколько звонков в recv, и сообщать после каждого звонка? Или есть лучший, более эффективный способ сделать это?
в MSDN, recv
делает следующее:
recv возвращает количество полученных байтов, а буфер, на который указывает параметр buf, будет содержать полученные данные.
Таким образом, вы могли бы создать int received
и накапливать полученные байты, которые возвращаются recv
до тех пор recv
больше нечего получать, а затем сообщить об общей сумме, накопленной в вашем received
переменная.
Других решений пока нет …