#! /usr/bin/python3
""" With class but one-at-a-time JSON echo
    Doesn't want to go away
"""
import socketserver
import sys
import json

def echo_json(json_socket):
    """Echo some JSON
    """
    in_stream = json_socket.makefile("r")
    out_stream = json_socket.makefile("w")
    # such a hack.... Keep going until it fails
    try:
        while True:
            json_line = in_stream.readline().strip()
            print("Input line --> {0}".format(json_line))
            receive_object = json.loads(json_line)
            print("Object --> {0}".format(receive_object))
            reply_line = json.dumps(receive_object)
            out_stream.write("{0}\r\n".format(reply_line))
            out_stream.flush()
    except Exception:
        # You'll get here on end-of-connection
        pass

class JSONHandler(socketserver.BaseRequestHandler):
    """
    Instantiated for each connection
    """
    def handle(self):
        echo_json(self.request)

if __name__ == "__main__":
    if len(sys.argv) <= 1:
        remote_port = 3210
    else:
        try:
            remote_port = int(sys.argv[1])
        except ValueError:
            print("Invalid port number: {0}".format(sys.argv[1]))
            sys.exit(2)
    server = socketserver.TCPServer(("", remote_port), JSONHandler)
    server.serve_forever()


