print(msg) sys.exit(1) except BrokenPipeError as e: print("Bob left unexpectedly") try: for message in messages_to_send: Alice_message = Alice.send_message(message) sock_self.send(Alice_message.encode()) bob_resp = sock_self.recv(1024).decode() need_response, alice_resp, terminal_signal = Alice.respond_state_machine( bob_resp, bob_host) if terminal_signal: break Alice_msg = Alice.disconnect() sock_self.send(Alice_msg.encode()) for rounds in range(3): bob_resp = sock_self.recv(1024).decode() need_response, Alice_msg, terminal_signal = Alice.respond_state_machine( bob_resp, bob_host) if Alice_msg is not None and (need_response or not terminal_signal): sock_self.send(Alice_msg.encode()) else: break sock_self.close() except BrokenPipeError as e: print("Bob left unexpectedly") print("Bob left as expected")
print("-" * 50) print("alice talks thrice") alice_msg = alice.send_message("What?") _, bob_resp, terminal_signal = bob.respond_state_machine(alice_msg, alice_ip) _, alice_resp, terminal_signal = alice.respond_state_machine(bob_resp, bob_ip) print("-" * 50) print("alice talks frice") alice_msg = alice.send_message("What?") _, bob_resp, terminal_signal = bob.respond_state_machine(alice_msg, alice_ip) _, alice_resp, terminal_signal = alice.respond_state_machine(bob_resp, bob_ip) print("-" * 50) print("alice -> DISCON REQ") alice_msg = alice.disconnect() print_pkg_info(bob.pkg_interp(alice_msg)) print("-" * 50) print("bob -> DISCON CLG") _, bob_resp, terminal_signal = bob.respond_state_machine(alice_msg, alice_ip) print_pkg_info(alice.pkg_interp(bob_resp)) print("-" * 50) print("alice -> DISCON RPY") _, alice_resp, terminal_signal = alice.respond_state_machine(bob_resp, bob_ip) print_pkg_info(bob.pkg_interp(alice_resp)) print("-" * 50) print("bob -> disconnects") _, bob_resp, terminal_signal = bob.respond_state_machine(alice_resp, alice_ip)