コンテンツへスキップ
uencoder

Socket

ソケットは(プロトコル、ローカル IP、ローカルポート、リモート IP、リモートポート)で識別されるネットワーク通信のエンドポイントで、アプリケーション層とトランスポート層の界面となる。

目的

アプリケーションに、下位プロトコルの詳細を隠す抽象的な通信エンドポイントを与える。

メカニズム

ソケット API では、socket() が生成、bind() がアドレス割り当て、listen() がサーバーをリスニング状態にし、accept() が接続を受け取り、connect() がクライアントから発信し、send()/recv() がデータを転送し、close() が切断する。TCP ソケットは状態機械を持ち、UDP はコネクションレスである。

ユースケース

  • ネットワークのサーバーとクライアント
  • データベースへの接続
  • WebSocket での通信
  • Unix ドメインソケット(ローカル IPC)

例

  • 入力
    (TCP, 0.0.0.0:8080, client:1234)
    Output
    One connected TCP socket

    The five-tuple

よくあるエラー

Unclosed sockets exhaust available ports
Use SO_REUSEADDR or close sockets promptly

関連用語

関連ツール

References