Javaでネットワークプログラミングのもっともシンプルな実現方法は、 サーブレットの技術を使うか、またはjava.netパッケージを使用することです。 ここではjava.netについて主に記述します。
java.netパッケージを使用すると、ソケットプログラミングというものができます。 ソケットといえば、WINSOCKやBSD(Berkeley Software Distribution)が有名ですが、 Javaでのソケットプログラミングも、ほとんど同じです。
ソケットプログラミングを行うには、ネットワークに関する基本的な(基本情報技術者試験程度のレベル)知識と、 java.ioパッケージの知識が必要です。
筆者は、昔WINSOCKについて少しばかり勉強してみて(当時の筆者のレベルが低かったこともあって)すごく難しい印象を持ちましたが、 java.netによるソケットプログラミングはすごく簡単だと感じました。 なのですでにWINSOCKやBSDを使ったことがある方ならば、すぐに習得できると思いますが、 多少常識違いがあるらしくて、その辺では少しストレスとなるようです。
Javaによるネットワークプログラミングは、java.netパッケージによるソケット以外に、 チャネリングの技術によりスケーラブルで、 SSLの技術によりセキュアなプログラムの作成が可能となります。
情報量についてですが、java.netの部分まではインターネットでいくらでも手に入りますが、 チャネリングやSSLの分野になると、情報はあるものの、 質のよいものがなかなか手に入りませんでした。 (筆者のレベルでは、英文だと、英語がわからないのか技術が理解できていないのかわからない・・) 筆者の場合、Javaネットワークプログラミングの真髄という著書を読みながら学習しましたが、 つまづかずに勉強することができました。