Кусок кода:
while((retn >= MAX_CHUNK)&&(retval>0))
{
retval=0;
retval = select(fd+1,&rdfs,NULL,NULL,&tv);
retn = recv(fd, buf, MAX_CHUNK, NULL);
/*receiving chunks*/
if(retval<=0)printf("No data has arrived in 2 secs\n");
write(fame_d,buf,retn); /*writing chunks into file*/
}
дело в том, что будет retval неположительным или нет - а цикл не закончится, пока не произойдет recv. Как сделать так, чтобы прервать while когда retval вернет что-нибудь <=0 (то есть установленное время для чтения истечет)? То есть, чтоб select служил своего рода таймером?
Плиз, кто может, посоветуйте. Есть ли другой способ поставить таймер на чтение из сокета (чтоб по истечении установленного времени чтение прерывалось, если получено 0 байт)?
Н-дя... наверное, вопрос тупой.
Ответ на:
комментарий
от vnp
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от vnp
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Ожидание при создании сокета (2017)
- Форум Чтение-запись в сокет (2009)
- Форум libXML2 чтение XML из сокета (2012)
- Форум одновременная запись и чтение сокета (+) (2008)
- Форум ESMTP, чтение-запись из сокета (2009)
- Форум чтение из сокета tcp/ip (2006)
- Форум [SHELL] чтение из сокета (netcat) (2006)
- Форум Чтение выхлопа процесса без ожидания его завершения (2019)
- Форум Сокеты - Несовпадение длины пакетов MJPEG при чтении (2017)
- Форум Большие ожидания (2012)