Сервер сообщает, что он отправляет данные в куски, как и ожидалось. Тем не менее, клиент получает неожиданно небольшое количество байтов в первом чтении, а затем заполошена, ожидая бесконечно для оставшихся данных. Вывод: < /strong>
журналы сервера указывают, что запросы получены, а кусочки изображения отправляются последовательно. < /P>
Код: Выделить всё
Request received: img_size...
Image size sent!
Request received: image...
Start sending image.
1024 bytes sent (1)
2048 bytes sent (2)
3072 bytes sent (3)
...
< /code>
[b] Вывод клиента: < /strong>
Клиент правильно получает общий размер изображения. Однако во время приема данных изображения количество байтов неверно с самого первого пакета, и процесс в конечном итоге висит. < /P>
Get Imagesize: 75186 bytes
(0/75186)
(5/75186)
(80/75186)
...
(16150/75186)
(16227/75186)
логика приема на стороне клиента < /strong>
Это основной цикл на стороне клиента, предназначенный для получения полного изображения.
Код: Выделить всё
tcp.Send("image");
std::string msg = "";
std::stringstream ss;
while (msg.length() < size_img) {
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/50915748/c-tcp-receive[/url]
Мобильная версия