UNIX系のOSでは,ネットワークプログラミングを行なうためにソケットイン
タフェース (socket interface) が用意されている.アプリケーション側では,
ソケットを利用することによってファイルの読み書きを行なうのと同様にネット
ワークでのデータ転送が行なえるようになり,実際に送受信されているデータの
構造や通信手段などを意識する必要はない
.
今回のようなクライアントサーバによるアプリケーションでは,以下のよ
うな流れで処理が行なわれる(カッコ内は各々を行なうシステムコール).
- サーバ
- ソケットを開く (socket())
- 接続を受け付けるIPアドレス・ポート番号をソケットに対応づけ
る (bind())
- クライアントからの接続待ち状態にする (listen())
- クライアントからの接続を受け付ける (accept())
- 通信を行なう (read(), write(), send(), recv())
- ソケットを閉じる (close())
- クライアント
- ソケットを開く (socket())
- サーバに接続する (connect())
- 通信を行なう (read(), write(), send(), recv())
- ソケットを閉じる (close())
NAKAZAWA Koji
2014-09-30