next up previous contents
Next: URLクラスと openStream() Up: Stream Previous: Stream

ストリームを使ったネットワーク・プログラミング

Javaのストリームが最大限の威力を発揮するのは、ネットワークの世界においてです。 Javaのネットワーク機能については、後の回で詳しく論ずるつもりですが、 ここでは、ストリームに関連して、いくつかのクラスを紹介したいと思います。

UNIX/Cで、ネットワークのプログラムをするためには、「ソケット(socket)」を 用います。所が、UNIX/Cのプログラミングの中でも、ソケット・プログラミングは、 難物です。そもそも、「ソケットて何だ?」という質問に答えるのが意外と難しい のです。ソケットは、実際には、「ファイル・ディスクリプタ」と同じものなのですが 「ファイル」と関係があるとは限りません。UNIX/Cの文化は、歴史的には、 ファイル概念の拡大と結びついています。そうした流れの中では、 「ソケットもファイル・ディスクリプタである」という説明も説得力を持つのですが、 そうでない人には、かえってわけが分かりません。よく行われるのは、「ソケット は、通信の端点である」という説明なのですが、これも当たり前に聞こえて真意が なかなか伝わりません。

ところが、Javaでは、ソケットなしで、ストリームを使うだけで、ネットワークの プログラムが書けてしまうのです。



maruyama@wakhok.ac.jp