![](/img/trans.png)
[英]Difference between Unix domain SOCK_DGRAM and 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_SEQPACKET
受socat
支持:
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.