public synchronized void setSoTimeout(int timeout) throws SocketException { if (impl == null) throw new SocketException("Not connected");
public synchronized void setSoTimeout(int timeout) throws SocketException { if (isClosed()) throw new SocketException("socket is closed");
	public synchronized void setSoTimeout(int timeout) throws SocketException {		if (impl == null)			throw new SocketException("Not connected");		if (timeout < 0)			throw new IllegalArgumentException("SO_TIMEOUT value must be >= 0");		impl.setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));	}