Exemplo n.º 1
0
class SocketInputStream(InputStream):
	def __init__(self, socket, timeout):
		super(SocketInputStream, self).__init__()
		self.__socket = socket
		self.__timeout = timeout
		self.__select = SimpleSelect(socket)


	def ready(self, timeout = Timeout.NONBLOCK):
		super(SocketInputStream, self).ready(timeout)
		return self.__select.readReady(timeout)


	def read(self, bytes):
		super(SocketInputStream, self).read(bytes)
		try:
			return self.__read(bytes)
		except socket.timeout:
			raise TimeoutError


	def __read(self, bytes):
		if self.ready(self.__timeout):
			return signalSafeCall(self.__socket.recv, bytes)
		else:
			raise TimeoutError
Exemplo n.º 2
0
class SocketOutputStream(OutputStream):
	def __init__(self, socket, timeout):
		super(SocketOutputStream, self).__init__()
		self.__socket = socket
		self.__timeout = timeout
		self.__select = SimpleSelect(socket)


	def flush(self):
		super(SocketOutputStream, self).flush()
		#fileObject = os.fdopen(self.__socket.fileno())
		#fileObject.flush()


	def write(self, data):
		super(SocketOutputStream, self).write(data)
		try:
			self.__write(data)
		except socket.timeout:
			raise TimeoutError


	def __write(self, data):
		if self.__select.writeReady(self.__timeout):
			return signalSafeCall(self.__socket.sendall, data)
		else:
			raise TimeoutError
Exemplo n.º 3
0
	def __init__(self, socket, timeout):
		super(SocketInputStream, self).__init__()
		self.__socket = socket
		self.__timeout = timeout
		self.__select = SimpleSelect(socket)