【そけっと】

ソケット とは?

最終更新:
💡 プログラムからデータを送受信する「通信の窓口」

プログラムがデータを送受信するための通信の端点。TCPやUDPによるネットワーク通信のほか、同じコンピューター内のプロセス間通信にも使う。

📌 このページのポイント
ソケット:プログラムの通信口クライアントソケットサーバーソケット送受信TCPで接続した後の例同じコンピューター内の通信にも使う
TCP接続後の送受信を示す例。サーバーの待ち受け用ソケットとは別に、接続ごとの通信用ソケットができます。
ひよこ ひよこ
ソケットって何?
ペンギン先生 ペンギン先生
プログラムがデータを送ったり受け取ったりする通信の窓口だよ。TCPやUDPのネットワーク通信だけでなく、同じコンピューター内でプロセス同士が通信するソケットもあるんだ
ひよこ ひよこ
IPアドレスとポート番号は何に使うの?
ペンギン先生 ペンギン先生
IP通信で相手の端点を指定するために使うよ。例えば192.168.1.1のTCPの80番ポート、という指定だね。ソケットそのものを、どんな場合でもIPアドレスとポートの組で一意に表せるわけではないよ
ひよこ ひよこ
サーバーとクライアントで使い方は違う?
ペンギン先生 ペンギン先生
TCPの例では、サーバーは接続を待つソケットを用意する。acceptで接続を受け入れると、その接続用の新しいソケットを得るよ。元の待ち受け用は残るので、次の接続も受け入れられる。扱える接続数は資源や設計によるんだ
ひよこ ひよこ
ペンギン先生 ペンギン先生
Linuxのsocket関数が成功すると返す、ソケットを参照する整数だよ。その番号を送受信などに使う。プロセス全体で開ける数や、システム全体の上限、メモリー不足によって作成や接続の受け入れに失敗する場合もあるんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ソケット」って出てきたら「プログラムが通信するための窓口」と思えばだいたいOK!
📖 おまけ:英語の意味
「Socket」 = 差し込み口
💬 英語では差し込み口という意味だよ。通信の窓口をイメージするたとえになるね

参考資料

← 用語集にもどる