簡體   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