|
@@ -100,6 +100,22 @@ class Server:
|
|
|
self._working = False # Reset peer_is_sender
|
|
|
return
|
|
|
|
|
|
+ def run(self):
|
|
|
+ loop = asyncio.get_event_loop()
|
|
|
+ logging.info("Starting file bridging server...")
|
|
|
+ try:
|
|
|
+ loop.run_until_complete(self.run_server())
|
|
|
+ except KeyboardInterrupt:
|
|
|
+ logging.info("Stopping...")
|
|
|
+ # Cancel connection tasks (they should be done but are pending)
|
|
|
+ for task in asyncio.all_tasks(loop):
|
|
|
+ task.cancel()
|
|
|
+ loop.run_until_complete(
|
|
|
+ self.server.wait_closed()
|
|
|
+ )
|
|
|
+ loop.close()
|
|
|
+ logging.info("Stooped.")
|
|
|
+
|
|
|
async def run_server(self):
|
|
|
self._server = await asyncio.start_server(
|
|
|
client_connected_cb=self.connect,
|
|
@@ -174,14 +190,8 @@ if __name__ == '__main__':
|
|
|
logging.info("Invalid port. Enter a valid port number!")
|
|
|
_port = None
|
|
|
|
|
|
- loop = asyncio.get_event_loop()
|
|
|
server = Server(
|
|
|
host=_host,
|
|
|
port=_port,
|
|
|
)
|
|
|
- logging.info("Starting file bridging server...")
|
|
|
- try:
|
|
|
- loop.run_until_complete(server.run_server())
|
|
|
- except KeyboardInterrupt:
|
|
|
- logging.info("Stopping...")
|
|
|
- loop.close()
|
|
|
+ server.run()
|