#scsrv.py -- simple (brain-dead, really) chat server

import socket

PORT = 2001
def server(port=2001):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((socket.gethostname(), port))
    s.listen(5)
    listeners = []  # list of listener sockets
    print("SCServer started on port", port)
    while True:
        conn, address = s.accept()
        print("Connect from", address)

        message = conn.makefile().readline()
        print("Message:", message)

        if message[0] == "l" or message[0] == "L":
            listeners.append(conn)
        elif message[0] == "t" or message[0] == "T":
            print("Sending message:", message[1:])
            badsockets = []
            for lsock in listeners:
                try:
                    lsock.send(message[1:].encode())
                except BrokenPipeError:
                    badsockets.append(lsock)
            for i in badsockets:
                listeners.remove(i)

import sys

if __name__ == "__main__":
    try:
        port = int(sys.argv[1])
    except IndexError:
        port = PORT
    server(port)

