Как узнать сколько доступно данных для чтения в сокете?

Не только применительно в iOS, но и будет полезно для других, кто работает с сокетами на C. Задача: есть сокет, из которого мы читаем — нужно узнать сколько данных доступно для чтения.


int sock = ...; // сокет
int bytes = 0; // тут будет кол-во байт, доступных для чтения
ioctl(sock,FIONREAD,&bytes);
if ( bytes > 0 ) {
// данные есть, можно читать
}

Нужно еще подключить файлы:


#include <sys/ioctl.h>
#include <sys/filio.h>

Возможно, есть и другие способы, но этот мне показался очень простым.

Рейтинг
( Пока оценок нет )
webnewsite.ru / автор статьи
Загрузка ...

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: