if __name__ == '__main__': object_L = [] # keeps track of objects, so we can kill their threads # create network nodes client = network.Host(1) object_L.append(client) server = network.Host(2) object_L.append(server) router_a = network.Router(name='A', intf_count=1, max_queue_size=router_queue_size) object_L.append(router_a) # create a Link Layer to keep track of links between network nodes link_layer = link.LinkLayer() object_L.append(link_layer) # add all the links # link parameters: from_node, from_intf_num, to_node, to_intf_num, mtu link_layer.add_link(link.Link(client, 0, router_a, 0, 50)) link_layer.add_link(link.Link(router_a, 0, server, 0, 50)) # start all the objects thread_L = [ threading.Thread(name=object.__str__(), target=object.run) for object in object_L ] for t in thread_L: t.start()
if __name__ == '__main__': object_L = [] #keeps track of objects, so we can kill their threads #create network nodes #part 3, add hosts, etc. (and make sure to start the threads) client = network_1.Host(1) #client has address 1 object_L.append(client) server = network_1.Host(2) #server has address 2 object_L.append(server) router_a = network_1.Router(name='A', intf_count=1, max_queue_size=router_queue_size) object_L.append(router_a) #create a Link Layer to keep track of links between network nodes link_layer = link_1.LinkLayer() object_L.append(link_layer) #add all the links #client is output, router_a is input, 50 is largest size a packet can be to be transferred over a link link_layer.add_link(link_1.Link(client, 0, router_a, 0, 50)) link_layer.add_link(link_1.Link(router_a, 0, server, 0, 50)) #for part 2, change mtu to 30 #start all the objects thread_L = [] thread_L.append(threading.Thread(name=client.__str__(), target=client.run)) thread_L.append(threading.Thread(name=server.__str__(), target=server.run)) thread_L.append( threading.Thread(name=router_a.__str__(), target=router_a.run))