SOCK_SEQPACKET可用性?

时间:2012-11-08 10:38:00

标签: sockets networking tcp ip

使用原始TCP套接字时,需要进行消息框架,如here所述,使用长度前缀或分隔符。

我今天遇到了“SOCK_SEQPACKET”套接字选项,这显然可以实现几乎透明的消息框架。

目前平台和操作系统中“SOCK_SEQPACKET”的可用性是多少? (Windows,OSX,Linux,IOS,Android ......)

3 个答案:

答案 0 :(得分:4)

我使用SOCK_SEQPACKET的{​​{1}},这样:

AF_INET

您无法获得TCP套接字。如果您的平台支持,套接字将是SCTP套接字。

SCTP尚未广泛使用。最新的Linux版本支持它(如果启用了SCTP)。

some libraries also for Windows

答案 1 :(得分:1)

在Mac OS X(El Captain)上仍然无法使用SCTP。 在https://github.com/sctplab/SCTP_NKE_ElCapitan有第三方开源内核扩展 - 但它是未签名的,因此您必须禁用Apple系统完整性保护。

参见例如https://apple.stackexchange.com/questions/114217/sctp-kernel-extension-for-mavericks

同样,你也不能在Mac OS X上对AF_UNIX使用SOCK_SEQPACKET。

答案 2 :(得分:0)

Linux :可用since version 2.6.4

Mac OS not available (更好的来源?)

Windows not available