ソケットとは、TCP/IPで通信を行なうコンピュータが持つネットワーク内での住所にあたるIPアドレスと、IPアドレスのサブ(補助)アドレスであるポート番号を組み合わせたネットワークアドレスのこと。
通常、TCP/IP通信においては、1つのIPアドレスは複数(通常は65536個)の「ポート」から構成され、他のIPアドレス上のポートと結合して、複数のアドレスと同時に通信できるようになっている。接続を行なう場合は必ずIPアドレスとポート番号の組を指定し、この組のことをソケットという。
1つのビル(IPアドレス)に複数の階(ポート)があり、どのビルのどの階かを指定して通信を行なうのがソケットであると言える。
ソケットには、通信を行なうアプリケーションソフトがTCP/IPを扱うための仮想的なインターフェースという意味もある。
アプリケーションソフトはアドレスとポートの組であるソケットを指定して回線を開くだけで、通信手順の詳細を気にすることなくデータの送受信を行なうことができる。
実際の通信はTCP/IPプロトコルスタックと呼ばれる共有ライブラリ(ソフトウェア部品)が担当する。
4.2BSDにTCP/IPが実装された時に用意された仕組みで、ネットワークを利用したプログラミングが格段に容易になった。この仕組みをWindowsに移植したものをWinsockという。