# File lib/memcache.rb, line 292
        def socket
            # Attempt to connect if not already connected.
            unless @sock || (!@sock.nil? && @sock.closed?)
                # If the host was dead, don't retry for a while.
                if @retry && (@retry > Time::now)
                    @sock = nil
                else
                    begin
                        @sock = timeout(CONNECT_TIMEOUT) {
                            TCPSocket::new(@host, @port)
                        }
                        @retry  = nil
                        @status = "CONNECTED"
                    rescue SystemCallError, IOError, Timeout::Error => err
                        self.mark_dead(err.message)
                    end
                end
            end
            @sock
        end