繁体   English   中英

socat 是否支持 Unix 域套接字的 SOCK_SEQPACKET?

[英]Does socat support SOCK_SEQPACKET for Unix domain socket?

考虑以下设置,其中一个socat实例将数据从stdin管道传输到 unix 域套接字,另一个实例从 unix 域套接字读取该数据并将其写入stdout

客户:

(while true; do echo "hello"; sleep 1; done) | socat STDIN UNIX:test.sock

服务器:

socat UNIX-LISTEN:test.sock STDOUT

此设置按预期工作,服务器以 1 秒的间隔将hello打印到stdout socat有没有办法使用SOCK_SEQPACKET套接字类型?

在进一步调查手册页后,我了解到SOCK_SEQPACKETsocat支持:

socktype= 将套接字的类型(指定为 socket() 或 socketpair() 调用的第二个参数)设置为 [int]。 地址解析不受此选项的影响。 在 Linux 下,1 表示 stream 面向套接字,2 表示数据报套接字,3 表示原始套接字, 5 seqpacket (流保持数据包边界)。

客户:

(while true; do echo "hello"; sleep 1; done) | socat  STDIN UNIX:test.sock,socktype=5

服务器:

socat UNIX-LISTEN:test.sock,socktype=5 STDOUT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM