java.net のその他の変更:
注目すべきバグの修正:
- InetAddress
JDK1.0.2 ではバグが存在し、対応するホスト名 (「www.example.com」など) が見つからない場合、IP アドレス String (「192.0.2.1」など) から InetAddress を生成できませんでした。その結果、UnknownHostException が発行されました。このバグは JDK 1.1 では修正されました。さらに、InetAddress が IP アドレスから生成されるとき、対応するホスト名は特別に要求されるまで (InetAddress.getHostName() 経由で)、パフォーマンスの向上のため参照されません。
- ServerSocket/DatagramSocket close()
JDK1.0.2 ではバグが存在し、ServerSocket および DatagramSocket の close()
メソッドは synchronized
とされました。この結果、1 つのスレッドが無期限に DatagramSocket.receive() または ServerSocket.accept() でブロックされた場合、別のスレッドは close() を呼び出してブロックしているスレッドを抜け出すことができませんでした。これは JDK 1.1 では close() メソッドを非同期にすることにより、修正されました。
- URLConnection
JDK1.0.2 ではバグが存在し、次の URLConnection のメソッド
- setRequestProperty()
- getRequestProperty()
- getHeaderField()
- getHeaderFieldInt()
- getContentLength()
- getDate()
などが機能しませんでした。これらは JDK 1.1 では修正されました。
ローカルポートとローカルアドレスへのバインディング:
- Socket、ServerSocket、DatagramSocket
これらのクラスは、固有のローカルアドレスとローカルポートへのバインディングのためにコンストラクタをオーバーロードしました。これは、マルチホームのコンピュータで動作し、ネットワークインタフェースを使用しているものを特定に制御する必要があるプロキシサーバーなどのアプリケーションには有用で必要なものです。
MulticastSocket:
- MulticastSocket クラスは、パッケージ sun.net から java.net のコア API に移動しました。
HttpURLConnection:
- JDK 1.1 では、新しいクラス HttpURLConnection が導入されました。これは URLConnection を拡張し、HTTP に固有の追加機能を提供します。
- すべての要求メソッドを HTTP/1.1 とともに使用する機能を次に示します。
- GET
- POST
- PUT
- HEAD
- TRACE
- DELETE
- OPTIONS
- これらは、HTTP リダイレクトに従うかどうかを制御します。