J2SE™ 1.4 は、マルチキャストを含む、TCP および UDP ベースのアプリケーションで IPv6 をサポートし、現在使用されているほとんどのエンドユーザーアプリケーションをサポートします。「IPv6 ユーザーガイド」を参照してください。
HTTP ダイジェスト認証の実装が更新され、プロキシとオリジンサーバーをサポートし、さらに、RFC2617 に定義された、auth-int モードを除くすべての機能を提供するようになりました。
ダイジェスト認証メカニズムの動作を変更するいくつかのシステムプロパティーが追加されました。これらのプロパティーについては、「ネットワークのプロパティー」ドキュメントを参照してください。
ソケットの作成、バインド、および接続を、さらに柔軟に行うことができます。接続を確立したり受け入れたりする前に、ソケットのオプションを操作することが可能です。さらに、接続を確立する際にタイムアウトを指定できます。
新しいクラス javax.net.ssl.SSLSocket は、java.net.Socket のサブクラスで、暗号化によるセキュリティーを提供します。このメカニズムは Java Secure Socket Extension (JSSE) と呼ばれ、ソケット経由で送信されるデータの暗号化を提供します。詳細は、「JSSE リファレンスガイド」を参照してください。
DatagramSocket.connect メソッドが、アドレスの関連付けをネイティブレベルで確立するようになりました。このため、サポートされている場合、アプリケーションは ICMP ポート到達不能メッセージを見て、リモートアプリケーションが利用できないことを識別できます。
J2SE 1.4 では、新しいクラス java.net.URI が追加されました。このクラスを使うと、プロトコルハンドラが存在しなくても、URI の構築と解析が可能になります。その処理は、URL クラスでは実行できません。URI クラスは、RFC 2396 および RFC 2732 に準拠しています。
現在の標準規格 (RFC 1738 および 959) に可能なかぎり適合するように、機能が徹底的に見直されました。この拡張により、FTP 機能に関連したいくつかのバグが修正されました。たとえば、J2SE 1.4 では、FTP のパッシブモードが機能します。
クラス java.net.InetAddress の機能が拡張されたため、JNDI を使って DNS ネームサービスプロバイダを利用することにより、pure Java ネームサービスプロバイダをアプリケーションが構成できるようになりました。このサポートの有効化については、「ネットワークのプロパティー」ドキュメントの「JNDI DNS サービスプロバイダの設定」を参照してください。
アプリケーションでほかの文字エンコーディング/デコーディングスキームを使用できるように、メソッド URLEncoder.encode(String s, String enc) および URLDecoder.decode(String s, String enc) が追加されました。
クラス java.net.Socket の 2 つの新しいメソッド sendUrgentData() および getOOBInline() により、特定の旧来のアプリケーションをサポートするための TCP の緊急データが限定的にサポートされます。緊急データの送信は、任意の TCP ソケットで実行できます。ただし、緊急データの受信については、部分的なサポートだけが提供されます。
TCP の V5 (RFC 1928) および V4 が完全にサポートされています。どのバージョンを使用するかに関するプロキシとの自動ネゴシエーションもサポートされます。SOCKS プロキシサーバーを指定するプロパティーの使用法については、「ネットワークのプロパティー」ドキュメントの「SOCKS プロトコルサポートの設定」を参照してください。
J2SE 1.4 では、新しいクラス java.net.NetworkInterface が追加されました。このクラスを使うと、インタフェースとアドレスを列挙できます。この新しいクラスは、マルチホーム上に配備されたアプリケーションや、複数のネットワークインタフェースを持つマシンの場合に便利です。
J2SE 1.4 では、さらに次の点が改善されました。
java.net パッケージの新しいクラスおよび例外の API 仕様へのリンクを次に示します。