Function nix::sys::socket::recvmmsg[][src]

pub fn recvmmsg<'a, I>(
    fd: RawFd,
    data: impl IntoIterator<Item = &'a mut RecvMmsgData<'a, I>, IntoIter = impl ExactSizeIterator + Iterator<Item = &'a mut RecvMmsgData<'a, I>>>,
    flags: MsgFlags,
    timeout: Option<TimeSpec>
) -> Result<Vec<RecvMsg<'a>>> where
    I: AsRef<[IoVec<&'a mut [u8]>]> + 'a, 

An extension of recvmsg that allows the caller to receive multiple messages from a socket using a single system call. This has performance benefits for some applications.

iov and cmsg_buffer should be constructed similarly to recvmsg

Multiple allocations are performed

Arguments

  • fd: Socket file descriptor
  • data: Struct that implements IntoIterator with RecvMmsgData items
  • flags: Optional flags passed directly to the operating system.

RecvMmsgData

  • iov: Scatter-gather list of buffers to receive the message
  • cmsg_buffer: Space to receive ancillary data. Should be created by cmsg_space!

Returns

A Vec with multiple RecvMsg, one per received message

References