unix 数据报套接字上的信号中断sendto/recvfrom

ozxc1zmp  于 2022-11-29  发布在  Unix
关注(0)|答案(1)|浏览(191)

如果信号中断数据报套接字上的sendto或recvfrom调用会发生什么?我能期望这些调用总是返回-1,errno == EINTR吗?或者它们可以返回正字节数,但我将完全重复调用?

vaqhlq81

vaqhlq811#

在数据报套接字上,sendtorecvfrom总是发送和接收完整的数据报,或者什么都不发送。如果它们能够在数据报的中间停止,则会破坏数据报的点。
有一个例外-如果缓冲区太小,recvfrom可能会截断数据报的结尾。整个数据报都被接收到了,但是你的程序并不能看到它的全部。

相关问题