製造業機械、リアルタイムチャット、動画通話、通信ゲームなどに使用されることの多いソケット通信(Socket)の概要について記載します。SocketとはTCP・UDPの出入り口になります。自由な通信アプリケーションを作成することが可能になります。その反面、ちゃんとTCP/IPを使うためにはTCP/IPの遷移をきちんと認識していないとなりません。TCP/IPを読む必要があるかも知れません。貴方がネットワークエンジニアではなくアプリケーションプログラマーだとしても。Socketではポート番号を自由に指定可能ですが、OSや他にインストールされているがアプリケーション使用するポート番号と重複した場合、最悪OSがクラッシュしたりすることもありますし、意図せずセキュリティホールを作成しまうことになりかねません。アプリが起動しないか、エラーになるとは思いますが。ソケット通信のアプリケーションをレイヤーでみると下図になるかと思います。赤枠部分のプログラムを作成していくことになります。参考までにサーバとネットワーク機器のレイヤーも書いてみました。javaやpythonでSocket通信を行うコードはgoogle検索すればサンプルがたくさんで出てきますので、それほど難しくはないと思います。closeしているはずのセッションをなぜか残ってしまったり(ゾンビデーモン)と実装では様々なトラブルに見舞われたりすることもあるかと思います。