// Cria um socket sem tempo limite
try
{
	InetAddress addr = InetAddress.getByName("java.sun.com");
	int port = 80;
	// Este constructor estará bloqueado até que a conexão aconteça
	Socket socket = new Socket(addr, port);
}
catch (UnknownHostException e)
{
}
catch (IOException e)
{
}
// Cria socket com limite de tempo
try
{
	InetAddress addr = InetAddress.getByName("java.sun.com");
	int port = 80;
	SocketAddress sockaddr = new InetSocketAddress(addr, port);
	// Cria um socket sem limite
	Socket sock = new Socket();
	// Este método bloqueará não mais do que determinado período de tempo
	// Se exceder o tempo máximo, será lançada a exceção SocketTimeoutException.
	int timeoutMs = 2000;   // 2 segundos
	sock.connect(sockaddr, timeoutMs);
}
catch (UnknownHostException e)
{
}
catch (SocketTimeoutException e)
{
}
catch (IOException e)
{
}