Java SE 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ポート到達不能メッセージを見て、リモート・アプリケーションが利用できないことを識別できます。
Java SE 1.4では、新しいクラスjava.net.URIが追加されました。このクラスを使用すると、プロトコル・ハンドラが存在しなくても、URIの構築と解析が可能になります。その処理は、URLクラスでは実行できません。URIクラスは、RFC 2396およびRFC 2732に準拠しています。
現在の標準規格(RFC 1738および959)に可能なかぎり適合するように、機能が徹底的に見直されました。この拡張により、FTP機能に関連したいくつかのバグが修正されました。たとえば、Java SE 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プロトコル・サポートの設定」を参照してください。
Java SE 1.4では、新しいクラスjava.net.NetworkInterfaceが追加されました。このクラスを使うと、インタフェースとアドレスを列挙できます。この新しいクラスは、マルチホーム上に配備されたアプリケーションや、複数のネットワーク・インタフェースを持つマシンの場合に便利です。
Java SE 1.4では、さらに次の点が改善されました。
java.netパッケージの新しいクラスおよび例外のAPI仕様へのリンクを次に示します。