ii-vision/server/server.py

40 lines
1.0 KiB
Python

import argparse
import socketserver
parser = argparse.ArgumentParser(
description='Serve a video to ][Vision clients.')
parser.add_argument(
'input', help='Path to input video file.')
parser.add_argument(
'--port', type=int,
# 6502 is used by ADTPro so use another nice number
default=1977,
help='Port number to serve on.')
def main(args):
serve_file = args.input
def handler():
class ChunkHandler(socketserver.BaseRequestHandler):
def handle(self):
with open(serve_file, "rb") as f:
data = f.read()
print("Sending %d bytes" % len(data))
self.request.sendall(data)
return ChunkHandler
with socketserver.TCPServer(
("0.0.0.0", args.port), handler(),
bind_and_activate=False) as server:
server.allow_reuse_address = True
server.server_bind()
server.server_activate()
server.serve_forever()
if __name__ == "__main__":
main(parser.parse_args())