История изменений
Исправление 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 позволит узнать номер стрима сообщения.