Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Сокеты: после вызова send программа зависает на функции recv - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запуск командной строки VS из конкретного каталога http://www.cyberforum.ru/cpp-beginners/thread1246995.html
Подскажите плиз, как запустить командную строку Visual Studio Command Promt (vsvars32.bat) из необходимого каталога, так как надоело постоянно использовать инструкцию cd.. для возврата из корневого...
C++ Json c++ send end write - существует ли готовая библиотека Здрасте, нужна такая штука которая бы умела посылать json обьекты методом post на кукую-нить страницу и получать оттуда json обьект в виде std::string т.е. у нас есть какой-нить string... http://www.cyberforum.ru/cpp-beginners/thread1246988.html
В дочерних классах компилятор сообщает об Undefined reference to pure virtual functions C++
Здравствуйте! Имеется базовый класс с чисто виртуальным деструктором (virtual ~Service() = 0). Однако в дочерних классах мне компилятор сообщает об undefined reference to ...::~Service(). Service...
Cannot convert from 'wchar_t' to 'const wchar_t *' C++
такой код, порылся в инете не помогло. ломать голову надоело может кто подскажет, буду благодарен. wchar_t * english = L"abvgdee ziyklmnoprstuf 'e " ; wchar_t TranslatedWord ; ...
C++ Нужен пример рекурсивной функции для понимания ее назначения и практической пользы http://www.cyberforum.ru/cpp-beginners/thread1246960.html
Не могу понять пользу рекурсии, может ли кто привести код в пример.
C++ Заменить все элементы, меньшие заданного числа, этим числом Использование функций-шаблонов: для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода массива, а также шаблон для решения основной задачи:Заменить все... подробнее

Показать сообщение отдельно
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
26.08.2014, 09:07
Цитата Сообщение от mh-coder Посмотреть сообщение
а зачем проверять количество принятых байт
в recv Вы указываете сколько желаете прочитать, но recv может прочитать меньше, например, Вы ждете 512 байт, а на сокет пришло только 300, так же recv может вернуть управление программе и прочитать 0 байт, там уже смотреть надо на код ошибки(errno - linux, WSAGetLastError() - windows)
собвственно что получется, Вы передаете например 512 байт, кусками по 100 байт, т.е сначала вычитаем 100, потом еще 100, и еще 3 раза по 100, и в последний раз вычитаем 12....вот надо смотреть сколько прочитали, что бы склеить результат, или понять что мы все дочитали....или если не все, выполнить чтение еще необходимое кол-во раз
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru