public synchronized void connect(HostInfo host, long connectionVersion) throws Throwable { try { log.debug("Trying to connect"); this.setConnectionVersion(connectionVersion); this.hostInfo = host; client = new Socket(); client.setReceiveBufferSize(256 * 1024); client.setReceiveBufferSize(256 * 1024); client.setSoLinger(true, 2); client.connect(new InetSocketAddress(host.getHostname(), host.getPort()), 15 * 1000); rawOutput = new DataOutputStream(getSocket().getOutputStream()); rawInput = new DataInputStream(getSocket().getInputStream()); socketAddress = getSocket().getRemoteSocketAddress(); socketAddressLiteral = socketAddress.toString(); log.debug("Connection established: " + socketAddressLiteral); closed = false; } catch (Throwable t) { throw new RuntimeException(t); } }