1. ホーム
  2. networking

[解決済み] パイプとソケットの違いは何ですか?

2022-02-17 05:15:13

質問内容

いくつかの回答を見つけましたが、それらは特にWindowsマシンに関するもののようです。 そこで質問なのですが、パイプとソケットの違いは何でしょうか?

どのように解決するのですか?

<ブロッククオート

パイプとソケットの違い、そしていつ、どのようにどちらを選ぶべきか?

パイプとソケットはどちらもバイトストリームを扱いますが、その方法は異なります...。

  • パイプは特定のホスト内にのみ存在し、仮想ファイル間のバッファリングや、そのホスト内のプロセスの出力/入力を接続することを指します。 パイプにはパケットという概念はありません。
  • ソケットは、IPv4またはIPv6を使用した通信をパケット化し、その通信はlocalhostを超えることができます。 ソケットの異なるエンドポイントは同じIPアドレスを共有できますが、そのためには異なるTCP / UDPポートでリッスンする必要があることに注意してください。

使用方法 :

  • パイプを使用します。
    • 特定のサーバ内でファイルとしてデータを読み書きしたい場合。 C言語を使っている場合は read()write() をパイプに変換します。
    • あるプロセスの出力と別のプロセスの入力を接続したい場合...参照 popen()
  • 異なるIPv4 / IPv6エンドポイント間でデータを送信するためにソケットを使用します。 多くの場合、これは異なるホスト間で起こりますが、ソケットは同じホスト内で使用することができます。

ちなみに ネットキャット または ソキャット を使って、ソケットとパイプを結合することができます。