LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1662|回复: 2

[socket 编程] AF_LOCAL+SOCK_DGRAM 总是可靠的么?

[复制链接]
发表于 2009-2-17 14:01:34 | 显示全部楼层 |阅读模式
准备用AF_LOCAL+SOCK_DGRAM建立本地的datagram socket,用来做IPC通信通道.
翻了下stevens的书 <UNIX network programming Volume1 3rd Edition>,上面说,这个和UDP socket差不多,是不可靠的。
但是自己又google了: AF_LOCAL + SOCK_DGRAM + reliable,得到的结果,却说在具体的implementation中,都是可靠的:
比如,见 http://www.tin.org/bin/man.cgi?section=7&topic=AF_LOCAL
中的原文:
SOCK_DGRAM,  for  a  datagram-oriented  socket  that  preserves message
boundaries (as on most Unix implementations, Unix domain datagram sock-
ets are always reliable and don't reorder datagrams)

所以我倾向于认为它是 reliable and ordered datagrams,只是想知道,自己如何在具体环境中*确认*这个。
比如,我要在最新的Ubuntu(Linux kernel 2.6以上)上使用这个datagram socket, 要确认它是reliable的,我去看相关文档(该看哪个?),
还是要看看kernel里面的实现?
因为就怕:它其实是不可靠的,但是大多数时候是可靠的(因为是本地socket)……

用过这个的请讲点经验.
先谢谢了
发表于 2009-2-17 15:00:53 | 显示全部楼层
就看你得可靠是如何定义的了。

说他不可靠,类似UDP,应该是相对于TCP而言的,没有重传和校验机制(UDP的校验是可选的)。

说他可靠是因为本地的socket,仅仅在内核中处理,并不会受到网络因素的影响,只要内核不崩溃就不会有问题。

但是,谁又能保证内核不会崩溃呢??:p
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-20 14:11:37 | 显示全部楼层
可靠,就是指不用担心丢包,然后重发啊,还有时序。也就是:reliable, ordered messages.
内核崩溃的情况当然不算了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表