本書は、従来は高度なプログラミングテクニックが必要とされたネットワークプログラミングについて、Javaを使ってわかりやすく解説した書籍。Java2をベースにWindowsに加えLinuxやBSDにも対応しているうえ、分散プログラミングについても章をたてて解説。実例として、電子メールクライアントやチャット、ネットワークゲームなどを紹介。
この1冊でJavaとネットワークプログラミングの両方が理解できる。
https://www.ohmsha.co.jp/book/9784274064869/
正誤表やDLデータ等がある場合はこちらに掲載しています
・まえがき
・プログラムのダウンロードサービスについて
・本書を読むにあたって
第1章 ネットワークプログラミングの原理と基礎知識
第2章 Javaによるネットワークプログラミング
第3章 TelnetとFTP
第4章 電子メールプログラミング
第5章 ネットワークゲームプログラミング
第6章 チャットプログラミング
第7章 JavaRMIによるネットワークプログラミング
付 録
・まえがき
・プログラムのダウンロードサービスについて
・本書を読むにあたって
第1章 ネットワークプログラミングの原理と基礎知識
1.1 コンピュータネットワークの実現
1.1.1 コンピュータネットワークとインターネット
1.1.2 パケットによるデータ通信
1.1.3 ネットワークプロトコルとネットワークアーキテクチャ
1.1.4 OSIの7階層
1.2 IPによるインターネットワーキング
1.2.1 IPの役割とIPアドレス
1.2.2 ARP
1.2.3 ICMP
1.2.4 IPアドレスとルーティング
1.2.5 DNS
1.2.6 IPv6
1.3 TCP/UDPによる通信モデル
1.3.1 プロセス、プロセス間通信、ポート
1.3.2 ポートを用いた通信
1.3.3 TCP
1.3.4 UDP
1.4 WWW?TCPコネクションを利用したクライアント/サーバ型サービスの実例
1.4.1 HTMLとHTTP
1.4.2 HTTPによる通信の例
第2章 Javaによるネットワークプログラミング
2.1 シンプルで明快なJava言語
2.1.1 Javaプログラムの動かし方
2.1.2 Javaプログラムの構成
2.1.3 Javaの例題(1)キーボードから読み込んで画面に出力する
2.1.4 Javaの例題(2)ファイルへの書き込み
2.1.5 Javaの例題(3)ファイルからの読み込み
2.2 Javaで利用できるネットワーク機能
2.2.1 ネットワーク経由でのデータの受け取り
2.2.2 ネットワークへのデータの出力
2.2.3 サーバの作り方(1)Netclockプログラム
2.2.4 サーバの作り方(2)Phttpdプログラム
2.3 ソケット以外の手段によるネットワーク通信
2.3.1 JavaRMI
2.3.2 CORBA
2.3.3 MPI
第3章 TelnetとFTP
3.1 Telnetの動作と機能
3.1.1 仮想端末Telnet
3.1.2 Telnetプロトコル
3.2 Telnetの実現
3.2.1 Telnet実現の方法を考える
3.2.2 Telnet第1版?ネットワークサーバ接続用汎用端末
3.2.3 Telnet第2版?Telnetサーバへの接続
3.2.4 Telnet完成版
3.3 FTPの動作と機能
3.3.1 FTPによるファイル転送
3.3.2 FTPの通信モデル
3.3.3 FTPの実際
3.4 FTPの実現
3.4.1 FTPプロトコルに基づくデータの取得
3.4.2 FTPプログラムの実現(1)制御用コネクションの作成
3.4.3 FTPプログラムの実現(2)データ用コネクションの追加
3.4.4 FTPプログラムの実現(3)ファイル受け渡しの実現
3.4.5 FTPプログラムの完成
第4章 電子メールプログラミング
4.1 電子メールのしくみ
4.1.1 電子メールシステム
4.1.2 SMTP
4.2 電子メール受信のしくみ
4.2.1 メールクライアントの仕事
4.2.2 POP3
4.3 SMTPによる簡易型メール送信プログラム
4.3.1 メール送信プログラムの設計
4.3.2 メール送信プログラムの実装
4.3.3 メール送信プログラムの挙動
4.4 POP3による簡易型メール受信プログラム
4.4.1 メール受信プログラムの設計
4.4.2 Popプログラムの実装
4.5 SMTP受信サーバの作成
4.5.1 SMTP受信サーバの意味
4.5.2 SMTP受信サーバの実装
4.6 電子メールクライアントの実装
4.6.1 電子メールクライアントの動作
4.6.2 電子メールクライアントソフトウェアの実装
第5章 ネットワークゲームプログラミング
5.1 ネットワークゲームの設計
5.1.1 ネットワークとコンピュータゲーム
5.1.2 ネットワークゲームのシナリオ
5.2 オリジナルゲームサーバの実現
5.2.1 クライアント/サーバ間プロトコルの設計
5.2.2 サーバプログラムの設計
5.2.3 サーバプログラムの実装
5.3 システムとしての実装
5.3.1 専用クライアントプログラムの設計
5.3.2 クライアントプログラムの実装
5.3.3 ロボットプログラムの実装
第6章 チャットプログラミング
6.1 TCPコネクションによるチャットサーバの構成方法
6.1.1 チャットシステムの構成
6.1.2 チャットサーバの実現
6.2 マルチキャストによるチャットプログラム
6.2.1 UDPマルチキャスト通信によるチャットシステム
6.2.2 マルチキャストによるチャットプログラムの実現
第7章 JavaRMIによるネットワークプログラミング
7.1 JavaRMIの枠組み
7.1.1 JavaRMIによる分散オブジェクトプログラミング
7.1.2 ソケットによる通信とJavaRMIの比較
7.2 JavaRMIを用いたプログラミングの実際―NetClockのJavaRMIによる記述―
7.2.1 プログラミングの手順
7.2.2 JavaRMIを利用したNetClockの実装
7.2.3 実行の方法
7.3 分散オブジェクトを用いた並列プログラミングシステム
7.3.1 数値処理と分散化
7.3.2 モンテカルロ法による円周率πの計算
7.3.3 JavaRMIを用いた分散オブジェクト並列プログラムによる数値処理
7.3.4 分散処理による高速化実験
付録
付録A FDDIの物理層プロトコル
付録B ATMの物理層プロトコル
付録C 電話回線とPPP
付録D IPデータグラムの構造
付録E ICMPパケットの構造
付録F TCP/UDPデータグラムの構造
参考文献
索引
【コラム】
P2P
パス設定用のバッチファイルの作成
Javaにおけるコメントの書き方
サーバとクライアント