【发布时间】:2013-03-22 19:09:58
【问题描述】:
消息队列可以发送消息,即使对方不在场读取消息,对方可以稍后慢慢来并读取累积的队列。
如何在套接字中实现这一点?每次我在没有人听(当然绑定)的情况下写入套接字时,它都会失败[连接流套接字:连接被拒绝或连接流套接字:没有这样的文件或目录]
起初,我只关注 AF_UNIX、SOCK_STREAM
谢谢 内森
【问题讨论】:
-
OSI 传输层网络中没有任何概念可以满足您的需求。正如您提到的消息队列库一样,它必须在网络层的更高级别实现。
-
您将问题更改为仅涵盖 Unix 域套接字,所以我假设您正在做
IPC。我建议查看 Sys V IPC 队列,因为它们在 *nix 系统上普遍可用。 -
+1 thx,我已经有了我的 API 的消息队列实现,但人们对 msgq 并不满意,因为令人惊讶的是,最大 msgq 只有数百个,本地套接字可以更好地扩展,所以我正在调查在那些线上。
-
这些参数通常可以通过调整操作系统来调整。但是是的,Sys V IPC一般只是为了满足接口的要求而提供的,并不关心可扩展性。
-
@EricUrban,OSI 只是一些过热的想象中的虚构。它的传输层与现实世界的网络没有任何共同之处。