예제 #1
0
def handle_client_recv(sock, addr):
    #broadcast the recieved msgs to all the other clients
    rest = bytes()
    while True:
        try:
            (msgs, rest) = chatmsg.recv_msgs(sock, rest)
        except (EOFError, ConnectionError):
            handle_disconnect(sock, addr)
            break
        for msg in msgs:
            msg = '{} : {}'.format(addr, msg)
            print(msg)
            broadcast_msg(msg)
예제 #2
0
            sock.close()
            break
        try:
            chatmsg.send_msg(sock,msg)
        except (BrokenPipeError, ConnectionError):
            print('socket error')
            break

if __name__ == '__main__':
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((HOST, PORT))
    print('Connect to {}:{}'.format(HOST, PORT))

    thread = threading.Thread(target=handle_input, args=[sock],
                             daemon=True)
    thread.start()
    rest = bytes()
    addr = sock.getsockname()
    while True:
        #Infinite loop to capture msgs from server
        try:
            (msgs, rest) = chatmsg.recv_msgs(sock, rest)
            for msg in msgs:
                print(msg)
        except ConnectionError:
            print('Connection to server closed')
            sock.close()
            break