Как проверить количество данных, доступных для сокета в C и Linux

У меня есть сервер, который получает непрерывный поток данных. В отличие от многократного чтения из сокета, я хотел бы прочитать все данные в буфере приема сокетов одним системным вызовом.read()

Конечно, я могу передать большой буфер иread() постараюсь заполнить его всеми доступными данными. Но это потеряло бы много памяти, так как большую часть времениed буфер будет больше, чем фактические данные, доступные на сокете. Есть ли способ запросить доступные данные на сокете?

Ответы на вопрос(6)

Ваш ответ на вопрос