web-dev-qa-db-ja.com

UNIXドメインソケットはオーバーフローしますか?

Socatを使用してUNIXソケットを作成し、そこにデータを送信したが、そのソケットに接続している別のsocatインスタンスがない場合、どうなりますか?

大量のデータをUNIXソケットに書き込み、それを決して読み取らないとどうなりますか?オーバーフローするバッファはありますか?リングバッファリングされていますか?

6
Max Ried

Unixソケットは信頼できます。リーダーが読み取らない場合、ライターはブロックします。ソケットがデータグラムソケットの場合、各書き込みは読み取りとペアになります。ソケットがストリームソケットである場合、カーネルはライターとリーダーの間でいくつかのバイトをバッファーに入れますが、バッファーがいっぱいになると、ライターはブロックします。リーダーがバッファを読み取る前に接続を閉じた場合、バッファされたデータを除いて、データは破棄されません。