Javaネットワークプログラミング 第2版
- Elliotte Rusty Harold 著、戸松 豊和 監訳、田和 勝 訳
- 2001年10月 発行
- 832ページ
- ISBN4-87311-061-0
- フォーマット PDF
- 原書: Java Network Programming, 2nd Edition
内容
「JAVAネットワークプログラミング」の改訂版です。Javaでネットワークプログラミングを行うための概念と実装を解説した書籍で、プログラミングの詳細に偏らずネットワークの入門書として使える良書です。改訂にあたり、JAVA2への対応はもちろんSecureSocketsやJavaMailの章を加えました。Javaネットワークプログラミングを行う開発者必携の書籍です。
目次
監訳者まえがき
はじめに
1章 Javaネットワークの魅力
1.1 ネットワークプログラムにできること
1.1.1 データの取り出しと表示
1.1.2 データを繰り返し取り出す
1.1.3 データの送信
1.1.4 ピアツーピア双方向通信
1.1.5 サーバ
1.1.6 Webを探索する
1.1.7 電子商取引
1.1.8 将来のアプリケーション
1.2 まとめ
2章 ネットワークの基本概念
2.1 ネットワーク
2.2 ネットワーク階層
2.2.1 ホスト-ネットワーク層
2.2.2 インターネット層
2.2.3 トランスポート層
2.2.4 アプリケーション層
2.3 IP、TCP、UDP
2.3.1 IPアドレスとドメイン名
2.3.2 ポート
2.4 インターネット
2.4.1 インターネットアドレスクラス
2.4.2 ファイアウォール
2.4.3 プロキシサーバ
2.5 クライアント/サーバモデル
2.6 インターネット標準
2.6.1 IETF RFC
2.6.2 W3C勧告
3章 Webの基本概念
3.1 URI
3.1.1 URN
3.1.2 URL
3.1.3 相対URL
3.2 HTML、SGML、XML
3.3 HTTP
3.4 MIME
3.5 CGI
3.6 アプレットとセキュリティ
3.6.1 アプレットとクラスはどこからやって来るのか
3.6.2 セキュリティ:アプレットが対話する相手と対話の内容
4章 Java I/O
4.1 出力ストリーム
4.2 入力ストリーム
4.2.1 マーキングとリセット
4.3 フィルタストリーム
4.3.1 フィルタをチェーンする
4.3.2 バッファつきストリーム
4.3.3 PrintStream
4.3.4 PushbackInputStream
4.3.5 データストリーム
4.3.6 ストリームを圧縮する
4.3.7 ダイジェストストリーム
4.3.8 ストリームの暗号化
4.4 ReaderとWriter
4.4.1 Writer
4.4.2 OutputStreamWriter
4.4.3 Reader
4.4.4 ReaderとWriterのフィルタ
5章 スレッド
5.1 スレッドの実行
5.1.1 Threadをサブクラス化する
5.1.2 Runnableインタフェースを実装する
5.2 スレッド情報の取得
5.2.1 競合条件
5.2.2 ポーリング
5.2.3 コールバック
5.3 同期化
5.3.1 同期化ブロック
5.3.2 同期化メソッド
5.3.3 同期化の代替手段
5.4 デッドロック
5.5 スレッドのスケジューリング
5.5.1 優先度
5.5.2 プリエンプション(優先権の奪取)
5.6 スレッドプール
6章 インターネットアドレスの処理
6.1 DNS、IPアドレス、その他
6.2 InetAddressクラス
6.2.1 InetAddressオブジェクトの作成
6.2.2 InetAddressオブジェクトを返すその他のメソッド
6.2.3 Objectとしてのメソッド
6.3 いくつかの便利なプログラム
6.3.1 HostLookup
6.3.2 Webサーバログファイルの処理
7章 URLクラスによるデータの取得
7.1 URLクラス
7.1.1 新しいURLの作成
7.1.2 URLを分解する
7.1.3 URLからデータを取得する
7.1.4 ユーティリティメソッド
7.1.5 Objectとしてのメソッド
7.1.6 プロトコルハンドラ用のメソッド
7.2 URLEncoderクラスとURLDecoderクラス
7.2.1 URLEncoder
7.2.2 URLDecoder
7.3 GETを使用してCGIおよびサーブレットとやり取りする
7.4 パスワード保護されたサイトにアクセスする
7.4.1 Authenticatorクラス
7.4.2 PasswordAuthenticationクラス
7.4.3 JPasswordFieldクラス
8章 SwingによるHTML処理
8.1 コンポーネント(GUI構成要素)上のHTML
8.2 JEditorPane
8.2.1 HTMLユーザインタフェースを動的に作成する
8.2.2 ハイパーリンクの処理
8.2.3 HTMLを直接読み込む
8.3 HTMLを解析する
8.3.1 HTMLEditorKit.Parser
8.3.2 HTMLEditorKit.ParserCallback
8.3.3 HTML.Tag
8.3.4 属性
9章 java.applet.Appletのネットワークメソッド
9.1 java.applet.Appletを使用してデータをダウンロードする
9.1.1 アプレットの送信元を調べる
9.1.2 イメージをダウンロードする
9.1.3 サウンドをダウンロードする
9.2 ImageObserverインタフェース
9.2.1 ImageObserverの定数
9.3 MediaTrackerクラス
9.3.1 コンストラクタ
9.3.2 MediaTrackersにImagesを追加する
9.3.3 メディアがロードされたかどうかチェックする
9.3.4 メディアのロードが終了するのを待つ
9.3.5 エラーチェック
9.3.6 メディアのステータスをチェックする
9.3.7 MediaTrackerからイメージを削除する
9.4 java.applet.AppletContextのネットワークメソッド
10章 クライアントソケット
10.1 ソケットの基礎
10.2 Telnetを使用してプロトコルを解析する
10.3 Socketクラス
10.3.1 コンストラクタ
10.3.2 Socketに関する情報を取得する
10.3.3 ソケットのクローズ
10.3.4 Objectとしてのメソッド
10.3.5 ソケットオプションの設定
10.4 ソケット例外
10.5 サンプルプログラム
10.5.1 Finger
10.5.2 Whois
11章 サーバソケット
11.1 ServerSocketクラス
11.1.1 コンストラクタ
11.1.2 接続の受け入れ(accept)と切断(close)
11.1.3 各種getメソッド
11.1.4 Socketオプション
11.1.5 Objectとしてのメソッド
11.1.6 実装
11.2 便利なサーバ
11.2.1 クライアントテスター
11.2.2 HTTPサーバ
12章 安全なソケット
12.1 安全な通信
12.2 安全なクライアントソケットを生成する
12.3 SSLSocketクラスのメソッド
12.3.1 暗号スイートの選択
12.3.2 イベントハンドラ
12.3.3 セッション管理
12.3.4 クライアントモード
12.4 安全なサーバソケットを生成する
12.5 SSLServerSocketクラスのメソッド
12.5.1 暗号スイートの選択
12.5.2 セッション管理
12.5.3 クライアントモード
13章 UDPデータグラムとソケット
13.1 UDPプロトコル
13.2 DatagramPacketクラス
13.2.1 コンストラクタ
13.2.2 各種getメソッド
13.2.3 各種setメソッド
13.3 DatagramSocketクラス
13.3.1 コンストラクタ
13.3.2 データグラムの送信と受信
13.3.3 接続を管理する
13.3.4 Socketオプション
13.4 便利なアプリケーション
13.4.1 単純なUDPクライアント
13.4.2 UDPServer
13.4.3 UDP echoクライアント
14章 マルチキャストソケット
14.1 マルチキャストソケットとは
14.1.1 マルチキャストアドレスとマルチキャストグループ
14.1.2 クライアントとサーバ
14.1.3 ルータと経路制御(ルーティング)
14.2 マルチキャストソケットを使用する
14.2.1 コンストラクタ
14.2.2 マルチキャストグループとのやり取り
14.3 2つの簡単な例
15章 URLConnectionクラス
15.1 URLConnectionをオープンする
15.2 データを読む
15.3 ヘッダを読む
15.3.1 特定のMIMEヘッダフィールドを取得する
15.3.2 任意のMIMEヘッダフィールドを取り出す
15.4 接続を設定する
15.4.1 protected URL url
15.4.2 connected
15.4.3 allowUserInteraction
15.4.4 defaultAllowUserInteraction
15.4.5 doInput
15.4.6 doOutput
15.4.7 ifModifiedSince
15.4.8 useCaches
15.4.9 defaultUseCaches
15.5 クライアントリクエストのMIMEヘッダを設定する
15.6 サーバにデータを書き出す
15.7 コンテントハンドラ
15.7.1 コンテンツの取得
15.7.2 ContentHandlerFactory
15.8 Objectとしてのメソッド
15.9 URLConnectionのセキュリティについて
15.10 MIMEタイプを推測する
15.11 HttpURLConnection
15.11.1 リクエストメソッド
15.11.2 サーバから切断する
15.11.3 サーバの応答を処理する
15.11.4 プロキシ
15.12 JarURLConnection
16章 プロトコルハンドラ
16.1 プロトコルハンドラとは
16.2 URLStreamHandlerを書く
16.2.1 コンストラクタ
16.2.2 URL解析用メソッド
16.2.3 接続用メソッド
16.3 プロトコルハンドラを書く
16.4 プロトコルハンドラの実例とテクニック
16.4.1 daytimeプロトコルハンドラ
16.4.2 chargenプロトコルハンドラ
16.5 URLStreamHandlerFactoryインタフェース
17章 コンテントハンドラ
17.1 コンテントハンドラとは
17.2 ContentHandlerクラス
17.2.1 tab-separated-values(タブで区切られた値)用コンテントハンドラ
17.2.2 ContentHandlerのファクトリ
17.2.3 戻り型を選択する
17.3 ContentHandlerFactoryインタフェース
17.3.1 createContentHandler( )メソッド
17.3.2 ContentHandlerFactoryのインストール
17.4 画像形式image/x-fitsのコンテントハンドラ
18章 Remote Method Invocation
18.1 Remote Method Invocation(RMI)とは
18.1.1 セキュリティ
18.1.2 オブジェクトのシリアライゼーション
18.1.3 RMIの内部動作
18.2 実装
18.2.1 サーバ側
18.2.2 クライアント側
18.2.3 スタブのコンパイル
18.2.4 サーバの起動
18.2.5 クライアントの起動
18.3 クラスの動的ロード
18.3.1 リモートオブジェクトを使用するアプレットクライアント
18.3.2 リモートオブジェクトを使用するアプリケーションクライアント
18.4 java.rmiパッケージ
18.4.1 Remoteインタフェース
18.4.2 Namingクラス
18.4.3 RMISecurityManagerクラス
18.4.4 リモート例外
18.5 java.rmi.registryパッケージ
18.5.1 Registryインタフェース
18.5.2 LocateRegistryクラス
18.6 java.rmi.serverパッケージ
18.6.1 RemoteObjectクラス
18.6.2 RemoteServerクラス
18.6.3 UnicastRemoteObjectクラス
18.6.4 例外
19章 JavaMail API
19.1 JavaMail APIとは
19.2 メールの送信
19.2.1 アプリケーションからメールを送信する
19.2.2 アプレットからメールを送信する
19.3 メールの受信
19.4 パスワード認証
19.5 アドレス
19.5.1 Addressクラス
19.5.2 InternetAddressクラス
19.5.3 NewsAddressクラス
19.6 URLNameクラス
19.6.1 コンストラクタ
19.6.2 解析用メソッド
19.7 Messageクラス
19.7.1 メッセージを作成する
19.7.2 基本ヘッダ情報
19.7.3 フラグ
19.7.4 フォルダ
19.7.5 検索
19.8 Partインタフェース
19.8.1 属性
19.8.2 ヘッダ
19.8.3 コンテンツ
19.9 マルチパートメッセージと添付ファイル
19.10 MIMEメッセージ
19.11 フォルダ
19.11.1 フォルダをオープンする
19.11.2 フォルダ基本情報
19.11.3 フォルダの管理
19.11.4 フォルダ内のメッセージの管理
19.11.5 購読
19.11.6 フォルダの中身をリスト表示する
19.11.7 メールをチェックする
19.11.8 フォルダからメッセージを取得する
19.11.9 フォルダを検索する
19.11.10 フラグ
19.11.11 イベント処理
19.11.12 ユーティリティメソッド