Setting a timeout for socket operations

Use the Socket() constructor, and connect(SocketAddress endpoint, int timeout) method instead.

In your case it would look something like:

Socket socket = new Socket();
socket.connect(new InetSocketAddress(ipAddress, port), 1000);

Quoting from the documentation

connect

public void connect(SocketAddress endpoint, int timeout) throws IOException

Connects this socket to the server with a specified timeout value. A timeout of zero is interpreted as an infinite timeout. The connection will then block until established or an error occurs.

Parameters:

endpoint – the SocketAddress
timeout – the timeout value to be used in milliseconds.

Throws:

IOException – if an error occurs during the connection
SocketTimeoutException – if timeout expires before connecting
IllegalBlockingModeException – if this socket has an associated channel, and the channel is in non-blocking mode
IllegalArgumentException – if endpoint is null or is a SocketAddress subclass not supported by this socket

Since:
1.4

Leave a Comment