code: def _can_read(self):
          
          if self.__sock is None:
              return None
          if select.select([self.__sock], [], [], self.__timeout)[0]:
              return True
          else:
              self.__last_error = const.MB_TIMEOUT_ERR
              self.__debug_msg('timeout error')
              self.close()
              return None
docs: Wait data available for socket read
  
          :returns: True if data available or None if timeout or socket error
          :rtype: bool or None