############################################################################### # Server ############################################################################### import asyncio import time FIRST_PROCESS_PORT = 10000 SECOND_PROCESS_PORT= 30000 THIRD_PROCESS_PORT = 50000 class MyLogger(object): def info(self, s): print(s) logger = MyLogger() class EchoServer(asyncio.Protocol): def __init__(self): self.client_info = None # Begin asyncio.Protocol overrides def connection_made(self, transport): self.transport = transport self.client_info = self.transport.get_extra_info("peername") logger.info(f"connection_made from: {self.client_info}") def connection_lost(self, reason): logger.info("connection_lost: %s | %s" % (self.client_info, "Client Disconnected")) def data_received(self, data): print("Received: %s" % str(data)) self.transport.write(data) class EchoServer1(asyncio.Protocol): def __init__(self): self.client_info = None # Begin asyncio.Protocol overrides def connection_made(self, transport): self.transport = transport self.client_info = self.transport.get_extra_info("peername") logger.info(f"connection_made from: {self.client_info}") self.transport.write(b'\x01') def connection_lost(self, reason): logger.info("connection_lost: %s | %s" % (self.client_info, "Client Disconnected")) def data_write(self): self.transport.write('b\x01') async def main(): loop = asyncio.get_running_loop() server1 = await loop.create_server( EchoServer1, "127.0.0.1", FIRST_PROCESS_PORT ) server2 = await loop.create_server( EchoServer, "127.0.0.1", SECOND_PROCESS_PORT ) server3 = await loop.create_server( EchoServer, "127.0.0.1", THIRD_PROCESS_PORT ) # serve forever async with server1, server2,server3: while True: await asyncio.sleep(1) if __name__ == "__main__": asyncio.run(main())
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)