我目前正在学习IPC和Unix域套接字。我想知道当接收端没有从Unix套接字中读取时,通过Unix套接字发送的消息会发生什么?无论有人在阅读,它们都会被发送吗?还是会在某种队列中等待阅读器
基于我的研究(Linux(,在数据报(面向消息(的情况下,Unix套接字:
- 如果接收端没有在套接字上执行
bind()
,则发送方将无法执行sendto()
- 如果接收端已经在套接字上执行了
bind()
而没有继续执行recvfrom()
,则发送方会将一批消息排队到某个极限并暂停 - 如果接收端恢复执行
recvfrom()
,则发送方将恢复
另请参阅:sysctl net.unix.max_dgram_qlen
(有关队列大小(。