我目前正在学习IPC和Unix域套接字.我想知道,当接收端不从Unix套接字读取消息时,通过Unix套接字发送的消息会发生什么情况?

推荐答案

根据我的研究(Linux),对于数据报(面向消息的)Unix套接字:

  • 如果接收端没有对套接字执行bind(),发送方将无法执行sendto()
  • 如果接收端在套接字上完成了bind()次,但没有继续执行recvfrom()次,则发送方会将一批消息排队,直至达到某个限制并暂停;
  • 如果接收端继续执行recvfrom(),发送方将继续.

另请参见:sysctl net.unix.max_dgram_qlen(队列大小).

Linux相关问答推荐

使用sed或awk映射自定义和任意函数

Linux和Windows x86程序集调用约定

Linux TTY 操作顺序

如何使用正则表达式在 LINux 中查找具有不同结尾的多个文件?

从 bash shell 等效项在fish shell 上设置 $ANDROID_SDK_ROOT

有没有办法定义自定义隐式 GNU Make 规则?

如何从linux调度程序中屏蔽一个cpu(防止它调度线程到那个cpu上)?

我应该如何从非 root Debian Linux 守护进程登录?

如何使用 sed debug调试正则表达式?

sed: -i 不能与 Mac OS X 上的标准输入一起使用

我需要 -D_REENTRANT 和 -pthreads 吗?

如何为 Linux 构建 Visual C++ 项目?

bash 中的sed命令

如何在 Ubuntu 上安装 chkconfig?

如何将整个文件夹从 Amazon EC2 Linux 实例复制到本地 Linux 机器?

为什么 Linux 不通过 TSS 使用硬件上下文切换?

Linux:在目录下的文件列表中搜索特定单词

谁决定任何数据类型或 struct 的大小(取决于 32 位或 64 位)?

如何让 GNU 屏幕读取 .bash_profile/.bash_rc 更改?

将原始数据发送到 TCP 服务器的 Linux 工具