def execute(self): '''this function operate the business logic''' data = self.protocol.get_data() if data is not None and "hello" in data: write_data = "egg" get_loop().server.prodcast(1,write_data) else: self.protocol.set_data(1,"hello icezhou")
def write_from_buffer(self): get_loop().modifyEvent(self.socket, select.EPOLLIN) write_data = None try: write_data = self.write_buffer.get_nowait() except Queue.Empty as e: pass if write_data: try: self.socket.sendall(write_data) except Exception as e: self.close()
def close(self): get_loop().delEvent(self.fd) self.socket.close() self.period.cancel() print("the socket is close")
def write_to_buffer(self, buf): try: get_loop().modifyEvent(self.socket, select.POLLOUT) self.write_buffer.put(buf) except Exception as e: self.close()
def begin(self): get_loop().addEvent(self.fd, select.EPOLLIN, self) self.ping_timer()
def main(): ss = server() server_address = ("", 50000) ss.bind(server_address) get_loop().start_server(ss)
def bind(self, server_address): self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.setblocking(0) self.socket.bind(server_address) self.socket.listen(__CATA_LOG_SIZE) get_loop().addEvent(self.socket.fileno(), select.EPOLLIN, self)