Socket通信について

製造業機械、リアルタイムチャット、動画通話、通信ゲームなどに使用されることの多いソケット通信(Socket)の概要について記載します。

SocketとはTCP・UDPの出入り口になります。汎用プロトコル(http/ftpなど)と比較して通信制御やより細かいログ出力、ステータス管理、常時接続、通信容量削減などが可能になります。
より自由な通信アプリケーションを作成することが可能になります。
その反面、ちゃんとTCP/IPを使うためにはTCP/IPの遷移をきちんと認識していないとなりません。TCP/IP遷移図で検索して出てきた図面が理解できないようなら、マスタリング TCP/IPを読む必要があるかも知れません。例え貴方がネットワークエンジニアではなくアプリケーションプログラマーだとしても。
例えばSocketではポート番号を自由に指定可能ですが、OSや他にインストールされているがアプリケーション使用するポート番号と重複した場合、最悪OSがクラッシュしたりすることもありますし、意図せずセキュリティホールを作成しまうことになりかねません。多分アプリが起動しないか、エラーになるとは思いますが。

ソケット通信のアプリケーションをレイヤーでみると下図になるかと思います。

赤枠部分のプログラムを作成していくことになります

参考までにサーバとネットワーク機器のレイヤーも書いてみました。

javaやpythonでSocket通信を行うコードはgoogle検索すればサンプルがたくさんで出てきますので、それほど難しくはないと思います。
ですが、closeしているはずのセッションをなぜか残ってしまったり(ゾンビデーモン)と実装では様々なトラブルに見舞われたりすることもあるかと思います。
検討を祈ります。

ご参考まで。

1

2

関連記事

TOP