Пишу ftp клиент, пока на bsd sockets. Не понимаю как в ftp клиентах обходят такой вот момент: recv возвращает нуль когда либо соединение закрыли на стороне сервера либо данные закончились. Делаю что-то вроде
do
{
size_read = recv(client_socket, buf, BUF_SIZE, 0);
buf[size_read]='\0';
printf("%s",buf);
}while(size_read > 0);
Ну и на очередном recv программа останавливается и ждет очередных данных от сервера. Как обойти такой момент, попытки читать исходники netkit пока не помогли