Возникла исключительная ситуация, используйте% tb для просмотра полной трассировки. SystemExit - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь запустить этот чат-клиент на сервере. но каждый раз, когда я запускаю его, все, что я получаю, это «возникла исключительная ситуация, используйте% tb для просмотра полной трассировки. SystemExit»

когда я пытаюсь запустить его на CMD, ничего не происходит.

Я пытаюсь запустить этот чат-клиент на сервере. но каждый раз, когда я запускаю его, все, что я получаю, это «Возникла исключительная ситуация, используйте% tb для просмотра полной трассировки. SystemExit»

, когда я пытаюсь запустить его на CMD, ничего не происходит.

  #server code
        import socket
        import select
        import sys
        from _thread import*


        server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)

        if len(sys.argv) != 3: 
            print ("Correct usage: script, IP address, port number")
            exit() 

        IP_address = str(sys.argv[1]) 

        Port = int(sys.argv[2]) 


        server.bind((IP_address, Port)) 

        server.listen(100) 

        list_of_clients = [] 

        def clientthread(conn, addr):

            conn.send("welcome to chatroom")

            while True:
                try:
                    message = conn.recv(2048)
                    if message:
                        print("<" + addr[0] + ">" + message)

                        message_to_send = "<" + addr[0] + "> " + message 
                        broadcast(message_to_send, conn) 
                    else:
                        remove(conn) 
                except:
                    continue

        def broadcasting(message, connection):
            for clients in list_of_clients:
                if clients !=connection:
                    try:
                        clients.send(message)
                    except:
                        clients.close()

                        remove(clients)

        def remove(connection): 
            if connection in list_of_clients: 
                list_of_clients.remove(connection) 

        while True:
            conn, addr = server.accept()

            list_of_clients.append(conn)

            print(addr[0]+"connected")

            start_new_thread(clientthread,(conn, addr))
        conn.close()
        server.close()

#client code

import socket
import sys
import select


server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if len(sys.argv) != 3:
    print("correct usage: Script, IP address, port number")
    exit()
IP_address = str(sys.argv[1]) 
Port = int(sys.argv[2]) 
server.connect((IP_address, Port)) 

while True:
    sockets_list = [sys.stdin, server]
    read_sockets,write_socket, error_socket = select.select(sockets_list,[],[]) 

    for socks in read_sockets: 
        if socks == server: 
            message = socks.recv(2048) 
            print( message )
        else: 
            message = sys.stdin.readline() 
            server.send(message) 
            sys.stdout.write("<You>") 
            sys.stdout.write(message) 
            sys.stdout.flush() 
server.close() 
...