def main():
parser = argparse.ArgumentParser(description='holosocket local')
parser.add_argument('-c', '--config', help='config file')
parser.add_argument('--debug', action='store_true', help='debug mode')
args = parser.parse_args()
if args.config:
with open(args.config, 'r') as f:
config = yaml.load(f, Loader=Loader)
if args.debug:
LOGGING_MODE = logging.DEBUG
else:
LOGGING_MODE = logging.INFO
logging.basicConfig(
level=LOGGING_MODE,
format='{asctime} {levelname} {message}',
datefmt='%Y-%m-%d %H:%M:%S',
style='{')
SERVER = config['server']
try:
V6_SERVER = config['v6_server']
except KeyError:
V6_SERVER = None
SERVER_PORT = config['server_port']
LOCAL = config['local']
PORT = config['local_port']
KEY = config['password']
try:
import uvloop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
logging.info('uvloop mode')
except ImportError:
logging.info('pure asyncio mode')
loop = asyncio.get_event_loop()
server = Server(SERVER, V6_SERVER, SERVER_PORT, KEY)
coro = asyncio.start_server(server.handle, LOCAL, PORT, loop=loop)
server = loop.run_until_complete(coro)
try:
loop.run_forever()
except KeyboardInterrupt:
pass
server.close()
loop.run_until_complete(server.wait_closed())
loop.close()
评论列表
文章目录