LINUX.ORG.RU

История изменений

Исправление iliyap, (текущая версия) :

Попробуй sctp_recvmsg с нулевым размером буфера, ненулевым указателем на sctp_sndrcvinfo, флажками MSG_PEEK|MSG_TRUNC. Флажок MSG_PEEK оставит сообщение в сокете, нулевой размер буфера предотвратит копирование сообщение из сокета, флажок MSG_TRUNC позволит узнать размер сообщения в сокете, заполненный sctp_sndrcvinfo позволит узнать номер стрима сообщения.

Только мне кажется накладные расходы на системный вызов выше, чем копирование полутора килобайт.

Исправление iliyap, :

Попробуй sctp_recvmsg с нулевым размером буфера, ненулевым указателем на sctp_sndrcvinfo, флажками MSG_PEEK|MSG_TRUNC. Флажок MSG_PEEK оставит сообщение в сокете, нулевой размер буфера предотвратит копирование сообщение из сокета, флажок MSG_TRUNC позволит узнать размер сообщения в сокете, заполненный sctp_sndrcvinfo позволит узнать номер стрима сообщения.

Исходная версия iliyap, :

Попробуй sctp_recvmsg с нулевым размером буфера, ненулевым указателем на sctp_sndrcvinfo, флажками MSG_PEEK|MSG_TRUNC. Флажок MSG_PEEK оставит сообщение в ядре, нулевой размер буфера предотвратит копирование сообщение из ядра, флажок MSG_TRUNC позволит узнать размер сообщения в ядре, заполненный sctp_sndrcvinfo позволит узнать номер стрима сообщения.