C ++ | TCP - получитьC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ | TCP - получить

Сообщение Anonymous »

Я разрабатываю приложение клиентского сервера в C ++ для передачи файла изображения через соединение TCP. Я столкнулся с проблемой, в которой клиент не получает полные данные изображения с сервера. < /P>
Сервер сообщает, что он отправляет данные в куски, как и ожидалось. Тем не менее, клиент получает неожиданно небольшое количество байтов в первом чтении, а затем заполошена, ожидая бесконечно для оставшихся данных. Вывод: < /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)

Моя основная точка путаницы заключается в том, почему клиент сообщает, что получает только 5 байт [/b] после того, как сервер отправил первый пакет 1024-byte . Логика приема клиента и функция отправки сервера. < /p>
логика приема на стороне клиента < /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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»