def read(self):
        sock_debug('Socket is readable')
        if self._needs_handshake and not self._do_ssl_handshake():
            return
        buf = ''.encode('utf-8')
        while True:
            try:
                d = self._sock.recv(65536)
                if not d:
                    break
                buf += d
                # ST2 on Windows with Package Control 3 support!
                # (socket.recv blocks for some damn reason)
                if G.SOCK_SINGLE_READ:
                    break
            except AttributeError:
                sock_debug('_sock is None')
                return self.reconnect()
            except (socket.error, TypeError) as e:
                sock_debug('Socket error:', e)
                break

        if buf:
            self._empty_reads = 0
            # sock_debug('read data')
            return self._handle(buf)

        # sock_debug('empty select')
        self._empty_reads += 1
        if self._empty_reads > (G.TICK_TIME / 3000):
            msg.error('No data from sock.recv() {0} times.'.format(self._empty_reads))
            return self.reconnect()
dataset/ETHPy150Open Floobits/floobits-sublime/floo/common/protocols/floo_proto.py/FlooProtocol.read/swapped operands of `/`