NDOJ/judge/bridge/echo_test_server.py
2022-05-14 12:57:27 -05:00

42 lines
1.1 KiB
Python

from judge.bridge.base_handler import ZlibPacketHandler
class EchoPacketHandler(ZlibPacketHandler):
def on_connect(self):
print("New client:", self.client_address)
self.timeout = 5
def on_timeout(self):
print("Inactive client:", self.client_address)
def on_packet(self, data):
self.timeout = None
print(
"Data from %s: %r"
% (self.client_address, data[:30] if len(data) > 30 else data)
)
self.send(data)
def on_disconnect(self):
print("Closed client:", self.client_address)
def main():
import argparse
from judge.bridge.server import Server
parser = argparse.ArgumentParser()
parser.add_argument("-l", "--host", action="append")
parser.add_argument("-p", "--port", type=int, action="append")
parser.add_argument("-P", "--proxy", action="append")
args = parser.parse_args()
class Handler(EchoPacketHandler):
proxies = args.proxy or []
server = Server(list(zip(args.host, args.port)), Handler)
server.serve_forever()
if __name__ == "__main__":
main()