Socket(host,port) blocks and can't be interrupted

Ignore the rules. That seems to be the only solution. Execute the constructor Socket(host,port) in a thread, if the time-out expires before it completes, kill the thread. Killing threads is deprecated, but this is the only way.

Remember, Thread.destroy() is "not implemented", Thread.interrupt() does not interrupt the Socket constructor, Thread.stop() is the only possibility.