Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Intermediate
Mar 7, 2005



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Timeout on Sockets in J2SE 1.4

The timeout option was supported in the previous versions of the JDK through the java.net.Socket class. The timeout option actually limits the amount of time a read request from across a socket can wait, and if there is no response, the read operation is terminated.

The new support available with the 1.4 release for timeouts is associated with connect timeouts. It controls how long a request waits for the server to respond with a valid connection.

The code fragment below lets you set the connection timeout. Instead of passing the InetAddress(host) and port to the Socket construction, you create a SocketAddress to identify the connection point. The timeout is set after creating the Socket by calling its connect method, passing in the SocketAddress and the value for timeout.

	int timeout = 2000; // two seconds
	SocketAddress socketAddress = new InetSocketAddress(host, port);
	Socket socket = new Socket();
	socket.connect(socketAddress, timeout);
This establishes a connection if there are no exceptions thrown. However, if the connection does not establish within the specified time, a SocketTimeoutException is thrown. Moreover, if the server rejects the request, a ConnectionException with a message of connection refused is thrown.

MS Sridhar
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date