Javaネットワークプログラミング 第2版

[cover photo]
TOPICS
Programming , Java
発行年月日
PRINT LENGTH
832
ISBN
4-87311-061-0
原書
Java Network Programming, 2nd Edition
FORMAT
PDF
Ebook
6,380円
Ebookを購入する

「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 ユーティリティメソッド