当接收端没有从Unix套接字中读取时,通过Unix套接字发送的消息会发生什么



我目前正在学习IPC和Unix域套接字。我想知道当接收端没有从Unix套接字中读取时,通过Unix套接字发送的消息会发生什么?无论有人在阅读,它们都会被发送吗?还是会在某种队列中等待阅读器

基于我的研究(Linux(,在数据报(面向消息(的情况下,Unix套接字:

  • 如果接收端没有在套接字上执行bind(),则发送方将无法执行sendto()
  • 如果接收端已经在套接字上执行了bind()而没有继续执行recvfrom(),则发送方会将一批消息排队到某个极限并暂停
  • 如果接收端恢复执行recvfrom(),则发送方将恢复

另请参阅:sysctl net.unix.max_dgram_qlen(有关队列大小(。

最新更新