Linux では、私の間違いでない限り、アプリケーションはソケット呼び出しファミリを使用して、データグラム トランスポートで一度に 1 つのパケットを送受信できます。
アプリケーションがデータグラム トランスポートの 1 回の呼び出しで複数のパケットを送受信する手段を Linux が提供しているかどうかを知りたいです。
Linux では、私の間違いでない限り、アプリケーションはソケット呼び出しファミリを使用して、データグラム トランスポートで一度に 1 つのパケットを送受信できます。
アプリケーションがデータグラム トランスポートの 1 回の呼び出しで複数のパケットを送受信する手段を Linux が提供しているかどうかを知りたいです。
recvmmsg を使用して複数のデータグラム パケットを受信する (UDP の例)
int recvmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
unsigned int flags, struct timespec *timeout);
DESCRIPTION
The recvmmsg() system call is an extension of recvmsg(2) that allows
the caller to receive multiple messages from a socket using a single
system call. ...
http://man7.org/linux/man-pages/man2/recvmmsg.2.html
sendmmsg を使用して送信...
int sendmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
unsigned int flags);
DESCRIPTION
The sendmmsg() system call is an extension of sendmsg(2) that allows
the caller to transmit multiple messages on a socket using a single
system call.