Функция recvmsg() в сетевом программировании используется для получения сообщений из сокета и сохранения их в массиве заголовков сообщений. 1
Некоторые возможности использования:
- Распределение и сбор буферов. 2 Например, если нужно получить 1 МБ данных, но есть только 10 буферов по 100 КБ, то можно заполнить каждый за один вызов recvmsg. 2
- Доступ к контрольным флагам, вспомогательным данным и полям заголовка IP-пакета. 2 Например, для UDP можно получить адрес назначения IP/порта, к которому был адресован пакет, перечислив контрольные данные, возвращённые recvmsg. 2
Функция возвращает длину полученных данных. 1 Если на сокете не доступно ни одного сообщения, то вызов ожидает их прибытия, если сокет не помечен как неблокирующий. 3