
import socket

def send_msg(sock, text):
    data = f"{len(text):03d}{text}"
    sock.sendall(data.encode("ascii"))

def recv_msg(sock):
    header = sock.recv(3)
    if not header:
        return None
    length = int(header.decode("ascii"))
    text = sock.recv(length).decode("ascii")
    return text

def run_client():
    sock = socket.socket()
    sock.connect(("127.0.0.1", 5000))

    # Ask human for name
    name = input("Enter your name: ")
    send_msg(sock, f"NAME{name}")

    # Receive greeting
    print(recv_msg(sock))

    # Dialog loop
    while True:
        line = input("> ")
        send_msg(sock, line)
        reply = recv_msg(sock)
        if reply is None:
            break
        print(reply)

    sock.close()

if __name__ == "__main__":
    run_client()
