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)
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