Question: need to create a python program that will create a log for each action taken by this script as well as adding in Seattle inbound

need to create a python program that will create a log for each action taken by this script as well as adding in Seattle inbound flights into the code:
import socket
import threading
import random
import string
def generate_passenger_payload():
return ''.join(random.choices(string.ascii_letters + string.digits, k=10))
airports ={
"ANC": "Anchorage",
"FAI": "Fairbanks",
"JNU": "Juneau",
"OME": "Nome",
"BET": "Bethel",
}
class AirportNode:
def __init__(self, airport_code, hub_airports, layover_possible=True):
self.airport_code = airport_code
self.hub_airports = hub_airports
self.layover_possible = layover_possible
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server_socket.bind(('localhost',0))
self.server_socket.listen(5)
self.address = self.server_socket.getsockname()
print(f"{airport_code} initialized at {self.address}")
def run_server(self):
while True:
client_socket, addr = self.server_socket.accept()
threading.Thread(target=self.handle_passenger, args=(client_socket,)).start()
def handle_passenger(self, client_socket):
data = client_socket.recv(1024).decode()
passenger_info = data.split(';')
origin, destination, layover, payload = passenger_info
print(f"Passenger arrived at {self.airport_code}: Origin={origin}, Destination={destination}, Layover={layover}, Payload={payload}")
if destination == self.airport_code:
print(f"Passenger {payload} has arrived at their final destination: {self.airport_code}")
elif layover == self.airport_code:
next_hop = destination
print(f"Passenger {payload} is continuing from layover {self.airport_code} to final destination {next_hop}")
self.send_passenger(destination, layover, payload)
else:
print(f"Passenger {payload} routed from {self.airport_code} to hub {self.hub_airports[0]}")
self.send_passenger(self.hub_airports[0], destination, payload)
client_socket.close()
def send_passenger(self, destination, layover, payload):
dest_port = airports_ports[destination]
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', dest_port))
client_socket.send(f"{self.airport_code};{destination};{layover};{payload}".encode())
client_socket.close()
airports_ports ={}
def initialize_airport(airport_code, hub_airports):
node = AirportNode(airport_code, hub_airports)
airports_ports[airport_code]= node.address[1]
threading.Thread(target=node.run_server).start()
def initialize_network():
hub_airports =["ANC", "FAI"]
initialize_airport("ANC", hub_airports)
initialize_airport("FAI", hub_airports)
initialize_airport("JNU", hub_airports)
initialize_airport("OME", hub_airports)
initialize_airport("BET", hub_airports)
def simulate_passenger(origin, destination, layover=None):
passenger_payload = generate_passenger_payload()
node = AirportNode(origin,["ANC", "FAI"])
node.send_passenger(destination, layover if layover else destination, passenger_payload)
if __name__=="__main__":
initialize_network()
simulate_passenger("JNU", "BET", "ANC")
simulate_passenger("OME", "FAI")

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!