Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from StudentNetworkSimulator import StudentNetworkSimulator
- import sys
- import time
- import argparse
- def main():
- n_sim=-1
- loss=-1.0
- corrupt=-1.0
- delay=-1.0
- trace=-1
- seed=-1
- _buffer=""
- # command line arguments
- # parse command line options
- parser = argparse.ArgumentParser(description="Reliable Transport Protocol Project")
- # set default parameters
- parser.set_defaults(num = None,
- loss = None,
- corrupt = None,
- delay = None,
- trace = None,
- seed = None)
- # add in arguments
- parser.add_argument("-n", "--number", type=int, dest="num", metavar="INT", help="Number of messages to simulate.")
- parser.add_argument("-l", "--loss", type=float, dest="loss", metavar="FLOAT", help="The packet loss probability.")
- parser.add_argument("-c", "--corrupt", type=float, dest="corrupt", metavar="FLOAT", help="the packet corruption probability.")
- parser.add_argument("-d", "--delay", type=float, dest="delay", metavar="FLOAT", help="Average time between messages from sender's layer5.")
- parser.add_argument("-t", "--trace", type=int, dest="trace", metavar="INT", help="Trace level.")
- parser.add_argument("-s", "--seed", dest="seed", metavar="INT|STR", help="Seed for the pseudo-random number generator. Using a value of 'random' will use the current time.")
- # process CLI arguments
- args = parser.parse_args()
- # pull out CLI parameters
- if args.num is not None and args.num > 0:
- n_sim = args.num
- if args.loss is not None and args.loss >= 0.0:
- loss = args.loss
- if args.corrupt is not None and args.corrupt >= 0.0:
- corrupt = args.corrupt
- if args.delay is not None and args.delay > 0.0:
- delay = args.delay
- if args.trace is not None and args.trace >= 0:
- trace = args.trace
- if args.seed is not None:
- try:
- seed = int(args.seed)
- except Exception:
- seed=int(round(time.time() * 1000))
- print "Network Simulator v1.0"
- while(n_sim<1):
- try:
- _buffer=raw_input("Enter number of messages to simulate (> 0):[10] ")
- except Exception:
- print "Error reading input"
- sys.exit(0)
- if(_buffer==""):
- n_sim=10
- else:
- try:
- n_sim=int(_buffer)
- except Exception:
- print "Please enter a valid value."
- n_sim=-1
- while(loss < 0.0):
- try:
- _buffer=raw_input("Enter the paceket loss probablity (0.0 for no loss): [0.0] ")
- except Exception:
- print "Error reading your input"
- sys.exit(0)
- if _buffer=="":
- loss=0.0
- else:
- try:
- loss=float(_buffer)
- except Exception:
- print "Please enter a valid value."
- loss=-1.0
- while(corrupt < 0.0):
- try:
- _buffer=raw_input("Enter the packet corruption probablity (0.0 for no corruption):[0.0] ")
- except Exception:
- print "Error reading your input"
- sys.exit(0)
- if _buffer=="":
- corrupt=0.0
- else:
- try:
- corrupt=float(_buffer)
- except Exception:
- print "Please enter a valid value."
- corrupt=-1.0
- while(delay <=0.0):
- try:
- _buffer=raw_input("Enter the average time between messages from sender's layer 5 (> 0.0): [1000] ")
- except Exception:
- print "Error reading your input"
- sys.exit(0)
- if _buffer=="":
- delay=1000.0
- else:
- try:
- delay=float(_buffer)
- except Exception:
- print "Please enter a valid value."
- delay=-1.0
- while(trace<0):
- try:
- _buffer=raw_input("Enter trace level (>=0): [0] ")
- except Exception:
- print "Error reading your input"
- sys.exit(0)
- if _buffer=="":
- trace=0
- else:
- try:
- trace=int(_buffer)
- except Exception:
- print "Please enter a valid value."
- trace=-1
- while(seed <1):
- try:
- _buffer=raw_input("Enter random seed: [random] ")
- except Exception:
- print "Error reading your input"
- sys.exit(0)
- if _buffer=="":
- seed=int(round(time.time() * 1000))
- else:
- try:
- seed=int(_buffer)
- except Exception:
- print "Please enter a valid value."
- seed=-1
- simulator=StudentNetworkSimulator(n_sim, loss, corrupt, delay, trace, seed)
- simulator.run_simulator()
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement