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
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
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
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