AsynchronousSocketChannel connect essentially is blocking and you can't apply the socket timeout setting.
You can:
a) get a future from connect and then call get(timeout, unit) with the timeout the result to honour the socket timeout but that is blocking.
b) pass a completion handler to connect which blocks whilst it connects and doesn't take a timeout - this is currently used.
See: http://stackoverflow.com/questions/20752756/how-to-set-java-nio-asynchronoussocketchannel-connect-timeout essentially this functionality is not available and implementing it would be complex