def onRecv(self, fileno): if self._socket.fileno() == fileno: sock, addr = self._socket.accept() self._clients[sock.fileno()] = (sock, addr) KBEngine.registerFileDescriptor(sock.fileno(), self.onRecv) DEBUG_MSG("Poller::onRecv: new channel[%s/%i]" % (addr, sock.fileno())) else: sock, addr = self._clients.get(fileno, None) if sock is None: return data = sock.recv(2048) DEBUG_MSG("Poller::onRecv: %s/%i get data, size=%i" % (addr, sock.fileno(), len(data))) KBEngine.deregisterFileDescriptor(sock.fileno()) del self._clients[fileno]
def onRecv(self, fileno): if self._socket.fileno() == fileno: sock, addr = self._socket.accept() self._clients[sock.fileno()] = (sock, addr) KBEngine.registerFileDescriptor(sock.fileno(), self.onRecv) DEBUG_MSG("Poller::onRecv: new channel[%s/%i]" % (addr, sock.fileno())) else: sock, addr = self._clients.get(fileno, None) if sock is None: return data = sock.recv(2048) DEBUG_MSG("Poller::onRecv: %s/%i get data, size=%i" % (addr, sock.fileno(), len(data))) self.processData(sock, data) KBEngine.deregisterFileDescriptor(sock.fileno()) sock.close() del self._clients[fileno]
def stop(self): if self._socket: KBEngine.deregisterFileDescriptor(self._socket.fileno()) self._socket.close() self._socket = None