【问题标题】:Signal interrupt sendto/recvfrom on datagram socket数据报套接字上的信号中断 sendto/recvfrom
【发布时间】:2022-11-24 23:12:42
【问题描述】:

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

【问题讨论】:

    标签: sockets unix datagram sendto recvfrom


    【解决方案1】:

    在数据报套接字上,sendtorecvfrom 总是发送和接收完整的数据报,或者什么都不发送。如果他们可以停在数据报的中间,那将破坏数据报的点。

    有一个例外 - 如果缓冲区太小,recvfrom 可能会切断数据报的结尾。接收到整个数据报,但您的程序无法看到所有数据报。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      相关资源
      最近更新 更多