# ver. 1.1 (29.03.2025)
import socket

HOST = '127.0.0.1'
PORT = 3000
TIMEOUT = 0.1

def start_server():
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
        server_socket.bind((HOST, PORT))
        server_socket.listen()
        conn = None
        while True:
            if conn is None:
                conn, addr = server_socket.accept()
                conn.settimeout(TIMEOUT)
            message_to_send = input("Type a message to send (or 'exit' to quit): ")
            if message_to_send.lower() == 'exit':
                break
            if message_to_send == '':
                continue
            try:
                conn.sendall(message_to_send.encode())
            except (socket.timeout, ConnectionResetError):
                conn.close()
                conn = None

if __name__ == "__main__":
    start_server()