Code example for Socket

Methods: connect, getInputStream, getOutputStream, isBound, isClosed, isConnected, isInputShutdown, isOutputShutdown, setKeepAlive, setReuseAddress

0
    public void setTimeoutInfinite() { 
        try { 
            if(!isConnected()) { 
        	connect(); 
            } 
            socket.setKeepAlive(true);
            socket.setSoTimeout(0);
        } catch (SocketException ex) {
            throw new JedisException(ex);
        } 
    } 
 
    public void rollbackTimeout() { 
        try { 
            socket.setSoTimeout(timeout);
            socket.setKeepAlive(false);
        } catch (SocketException ex) {
            throw new JedisException(ex);
        } 
    } 
 
    public Connection(final String host) {
        super(); 
        this.host = host;
    } 
 
    protected void flush() { 
        try { 
            outputStream.flush();
        } catch (IOException e) {
            throw new JedisConnectionException(e);
        } 
    } 
 
    protected Connection sendCommand(final Command cmd, final String... args) {
        final byte[][] bargs = new byte[args.length][];
        for (int i = 0; i < args.length; i++) {
            bargs[i] = SafeEncoder.encode(args[i]);
        } 
        return sendCommand(cmd, bargs);
    } 
 
    protected Connection sendCommand(final Command cmd, final byte[]... args) {
        connect(); 
        Protocol.sendCommand(outputStream, cmd, args);
        pipelinedCommands++;
        return this;
    } 
     
    protected Connection sendCommand(final Command cmd) {
        connect(); 
        Protocol.sendCommand(outputStream, cmd, new byte[0][]);
        pipelinedCommands++;
        return this;
    } 
 
    public Connection(final String host, final int port) {
        super(); 
        this.host = host;
        this.port = port;
    } 
 
    public String getHost() {
        return host;
    } 
 
    public void setHost(final String host) {
        this.host = host;
    } 
 
    public int getPort() { 
        return port;
    } 
 
    public void setPort(final int port) {
        this.port = port;
    } 
 
    public Connection() { 
    	 
    } 
 
    public void connect() { 
        if (!isConnected()) { 
            try { 
                socket = new Socket();
                //->@wjw_add 
                socket.setReuseAddress(true);
                socket.setKeepAlive(true);  //Will monitor the TCP connection is valid
                socket.setTcpNoDelay(true);  //Socket buffer Whetherclosed, to ensure timely delivery of data
                socket.setSoLinger(true,0);  //Control calls close () method, the underlying socket is closed immediately
                //<-@wjw_add 
 
                socket.connect(new InetSocketAddress(host, port), timeout);
                socket.setSoTimeout(timeout);
                outputStream = new RedisOutputStream(socket.getOutputStream());
                inputStream = new RedisInputStream(socket.getInputStream());
            } catch (IOException ex) {
                throw new JedisConnectionException(ex);
            } 
        } 
    } 
 
    public void disconnect() { 
        if (isConnected()) { 
            try { 
                inputStream.close();
                outputStream.close();
                if (!socket.isClosed()) {
                    socket.close();
                } 
            } catch (IOException ex) {
                throw new JedisConnectionException(ex);
            } 
        } 
    } 
 
    public boolean isConnected() { 
        return socket != null && socket.isBound() && !socket.isClosed()
                && socket.isConnected() && !socket.isInputShutdown()
                && !socket.isOutputShutdown();
    } 
 
    protected String getStatusCodeReply() {
        flush(); 
        pipelinedCommands--;