看起来至少有三种不同的本地/Unix套接字类型(AF_UNIX
),SOCK_STREAM
,SOCK_DGRAM
和SOCK_SEQPACKET
。
我知道SOCK_STREAM
提供双向字节流,例如TCP或双向管道,而其他两个提供消息/数据包API。那么SOCK_DGRAM
和SOCK_SEQPACKET
之间有什么区别呢?
由于这些都是局域网通信,我无法想象为什么会有人以可能重新排序数据包的方式实现SOCK_DGRAM
。
此外,SOCK_DGRAM
/SOCK_SEQPACKET
是否采用流量控制,或者在读取速度较慢时消息是否会被丢弃?