示例#1
0
 def sendBytes(self, data, timeout=0):
     if self.socket is None:
         self.error("Error: socket is not initialized!")
         return False
     self.tx_bytes += len(data)
     if self.log_data_exchange:
         self.warning("Send bytes: (%s) %r (timeout=%s)" % (
             len(data), data, timeout))
     try:
         self.socket.settimeout(timeout)
         self.socket.send(data)
     except socket_error, err:
         self.warning("Send error: %s" % formatError(err))
         self.closeSocket()
         self.send('session_stop')
         return False
示例#2
0
 def sendBytes(self, data, timeout=0):
     if self.socket is None:
         self.error("Error: socket is not initialized!")
         return False
     self.tx_bytes += len(data)
     if self.log_data_exchange:
         self.warning("Send bytes: (%s) %r (timeout=%s)" %
                      (len(data), data, timeout))
     try:
         self.socket.settimeout(timeout)
         self.socket.send(data)
     except socket_error, err:
         self.warning("Send error: %s" % formatError(err))
         self.closeSocket()
         self.send('session_stop')
         return False
示例#3
0
 def sendBytes(self, data, buffer_size=None):
     log_data_exchange = self.server().log_data_exchange
     index = 0
     while index < len(data):
         if buffer_size:
             chunk = data[index:index+buffer_size]
         else:
             chunk = data[index:]
         if log_data_exchange:
             self.warning("Send bytes: (%s) %r" % (len(chunk), chunk))
         try:
             count = self.socket.send(chunk)
             index += count
             self.tx_bytes += count
         except socket_error, err:
             self.warning("Send error: %s" % formatError(err))
             self.close()
             break
示例#4
0
    def recvBytes(self, max_size=None, timeout=0.250, buffer_size=1024):
        if self.socket is None:
            self.error("Error: socket is not initialized!")
            return None

        datas = []
        data_len = 0
        time_end = time() + timeout
        while True:
            if (not datas) and (not timeout):
                # First step in non blocking mode
                time_diff = 0
            else:
                time_diff = time_end - time()
                if time_diff < 0:
                    break
            if max_size is not None and max_size <= data_len:
                break
            try:
                self.socket.settimeout(time_diff)
                data = self.socket.recv(buffer_size)
            except socket_timeout:
                break
            except socket_error, err:
                code = err.args[0]
                if not time_diff and code == EAGAIN:
                    break
                self.warning("Receive error: %s" % formatError(err))
                self.closeSocket()
                self.send('session_stop')
                break
            if not data:
                break
            if self.log_data_exchange:
                self.warning("Receive bytes: (%s) %r" % (len(data), data))
            datas.append(data)
            data_len += len(data)
            self.rx_bytes += data_len
示例#5
0
    def recvBytes(self, max_size=None, timeout=0.250, buffer_size=1024):
        if self.socket is None:
            self.error("Error: socket is not initialized!")
            return None

        datas = []
        data_len = 0
        time_end = time() + timeout
        while True:
            if (not datas) and (not timeout):
                # First step in non blocking mode
                time_diff = 0
            else:
                time_diff = time_end - time()
                if time_diff < 0:
                    break
            if max_size is not None and max_size <= data_len:
                break
            try:
                self.socket.settimeout(time_diff)
                data = self.socket.recv(buffer_size)
            except socket_timeout:
                break
            except socket_error, err:
                code = err.args[0]
                if not time_diff and code == EAGAIN:
                    break
                self.warning("Receive error: %s" % formatError(err))
                self.closeSocket()
                self.send('session_stop')
                break
            if not data:
                break
            if self.log_data_exchange:
                self.warning("Receive bytes: (%s) %r" % (len(data), data))
            datas.append(data)
            data_len += len(data)
            self.rx_bytes += data_len