ソケット通信の仕組みについて整理します。
ソケット通信は双方向通信ができます。
ソケット通信は「サーバー」と「クライアント」で構成されます。
「サーバー」は常駐する方です。一方、「クライアント」は必要なときにサーバーへ接続します。
HTTPと同様、サーバーはクライアントからの要求に対して応答することができます。
クライアントはサーバーに処理を要求することができます。
一方、接続を確立すればサーバーからクライアントに対して通信を行うこともできます。
以下に、クライアントからの要求データ送信に対して応答データを送る手順を示します。
サーバーは次の手順で確立します。
・ソケットの作成
・ソケットとローカルアドレス・ポートのバインド(ソケットの確立)
・ソケットでリッスン(クライアントからの接続待ち)
・クライアントのアクセプト(クライアントからの接続を確立)
・クライアントからの要求データ受信
・クライアントへの応答データ送信
・ソケットのクローズ(ソケットを閉じる)
クライアントは次の手順で確立します。
・ソケットの作成
・サーバーへの接続(コネクト)
・サーバーへ要求データの送信
・サーバーからの返答を受信
・ソケットのクローズ
ソケットを閉じない限り、双方向でデータの送受信を行うことができます。
例えば製造現場ではPLCを介してこのようなシステムが組まれます。