Я пишу простой клиент, который читает двоичные данные через поток TCP.Поскольку файл отправляется по частям, у меня есть цикл, похожий на этот:
while (1 /* Maybe a check for EOF or if the socket is closed here ? */) {
ssize_t bytes_red = recv(
if (bytes_read <= 0) // not working properly ?
break;
...
}
Чтение выполняется с помощью метода recv (), который возвращает количество полученных байтов.Идея, очевидно, состоит в том, чтобы читать данные, пока открыт поток TCP, но кажется, что описанный выше подход не работает для меня.
Есть еще идеи?Как правильно читать из сокета до тех пор, пока поток не будет закрыт или EOF не обнаружен?
EDIT : Приведенный выше подход работает нормально, в другом месте была ошибка.