| Documentation Contents

# Networking New Features and Enhancements

### IPv6 (Internet Protocol version 6)

> J2SETM 1.4 supports IPv6 in TCP and UDP-based applications, including multicast, and will support most end-user applications in use today. See the IPv6 User Guide.

### HTTP Digest Authentication

> The HTTP digest authentication implementation has been updated to support proxies as well as origin servers, and has also been updated to provide all capabilities defined in RFC2617, except for the auth-int mode.

> A number of system properties have been added which modify the behavior of the digest authentication mechanism. These are identified in the Networking Properties document.

### Unconnected/Unbound Socket Support

> Allows more flexible socket creation, binding, and connection. Enables manipulation of socket options before establishing or accepting connections. In addition a timeout can be specified when establishing a connection.

> New class `javax.net.ssl.SSLSocket` is a subclass of `java.net.Socket` that provides security through encryption. The mechanism is called the Java Secure Socket Extension (JSSE), and it provides encryption for data sent via sockets. See the JSSE Reference Guide for further information.

### Connected UDP Socket Support

> The `DatagramSocket.connect` method now establishes the address association at native level. Where supported, this allows an application to have visibility of ICMP port unreachable messages as an indication that the remote application is unavailable.

### Uniform Resource Indentifier (URI)

> Class java.net.URI is new in J2SE 1.4. It allows URI construction and parsing without the presence of a protocol handler, which is not possible with the URL class. The URI class is compliant with RFC 2396 and RFC 2732.

### FTP Protocol Handler

> Significant overhaul to make the functionality conform as much as possible to the current standards (RFC 1738 & 959). This enhancement fixes several bugs associated with FTP functionality. For example, passive mode for FTP works in J2SE 1.4.

### JNDI DNS SP Support in InetAddress

> This enhancement in class `java.net.InetAddress` enables applications to configure a pure Java name service provider by using a DNS name service provider through JNDI. See JNDI DNS service provider settings in the Network Properties document for information on enabling this support.

### URLEncoder and URLDecoder Improvements

> Methods `URLEncoder.encode(String s, String enc)` and `URLDecoder.decode(String s, String enc)` have been added to enable applications to use other character encoding/decoding schemes.

### TCP Out-of-Band Data

> Two new methods in class `java.net.Socket`, `sendUrgentData()` and `getOOBInline()`, provide limited support for TCP urgent data for support certain legacy applications. Urgent data may be sent on any TCP socket. However, only partial support for receiving urgent data is provided.

### SOCKS

> Full V5 (RFC 1928) & V4 TCP support with autonegociation with the proxy of which version to use. See the SOCKS protocol support settings in the Network Properties document for information about using properties to specify the SOCKS proxy server.

### NetworkInterface

> Class `java.net.NetworkInterface` is new in J2SE 1.4. It allows enumeration of interfaces and addresses. This new class should be useful to applications deployed on multihomed and machines with multiple network interfaces.

### Other Major Improvements

> J2SE 1.4 also offers the following.
> - Improved Http streaming performance.
> - Request and response headers processing functionality in the form of these new methods in class `java.net.URLConnection`"

>   > `addRequestProperty
>   > getRequestProperties
>   > getHeaderFields`

> - Improved error handling implementation for method `HttpURLConnection.getErrorStream()`.

### New Classes

> Here are links to the API specifications for the new classes and exceptions in the `java.net` package.
> - `Inet4Address`
> - `Inet6Address`
> - `InetSocketAddress`
> - `NetworkInterface`
> - `SocketAddress`
> - `URI`
> - `PortUnreachableException`
> - `SocketTimeoutException`
> - `URISyntaxException`

Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved. Please send comments using this Feedback page. | Java Technology