Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.01 KB | None | 0 0
  1. from StudentNetworkSimulator import StudentNetworkSimulator
  2. import sys
  3. import time
  4. import argparse
  5.  
  6. def main():
  7.     n_sim=-1
  8.     loss=-1.0
  9.     corrupt=-1.0
  10.     delay=-1.0
  11.     trace=-1
  12.     seed=-1
  13.     _buffer=""
  14.  
  15.     # command line arguments
  16.     # parse command line options
  17.     parser = argparse.ArgumentParser(description="Reliable Transport Protocol Project")
  18.  
  19.     # set default parameters
  20.     parser.set_defaults(num = None,
  21.                 loss = None,
  22.                 corrupt = None,
  23.                 delay = None,
  24.                 trace = None,
  25.                 seed = None)
  26.  
  27.     # add in arguments
  28.     parser.add_argument("-n", "--number", type=int, dest="num", metavar="INT", help="Number of messages to simulate.")
  29.     parser.add_argument("-l", "--loss", type=float, dest="loss", metavar="FLOAT", help="The packet loss probability.")
  30.     parser.add_argument("-c", "--corrupt", type=float, dest="corrupt", metavar="FLOAT", help="the packet corruption probability.")
  31.     parser.add_argument("-d", "--delay", type=float, dest="delay", metavar="FLOAT", help="Average time between messages from sender's layer5.")
  32.     parser.add_argument("-t", "--trace", type=int, dest="trace", metavar="INT", help="Trace level.")
  33.     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.")
  34.  
  35.     # process CLI arguments
  36.     args = parser.parse_args()
  37.  
  38.     # pull out CLI parameters
  39.     if args.num is not None and args.num > 0:
  40.         n_sim = args.num
  41.  
  42.     if args.loss is not None and args.loss >= 0.0:
  43.         loss = args.loss
  44.  
  45.     if args.corrupt is not None and args.corrupt >= 0.0:
  46.         corrupt = args.corrupt
  47.  
  48.     if args.delay is not None and args.delay > 0.0:
  49.         delay = args.delay
  50.  
  51.     if args.trace is not None and args.trace >= 0:
  52.         trace = args.trace
  53.  
  54.     if args.seed is not None:
  55.         try:
  56.             seed = int(args.seed)
  57.         except Exception:
  58.             seed=int(round(time.time() * 1000))
  59.    
  60.     print "Network Simulator v1.0"
  61.     while(n_sim<1):
  62.         try:
  63.             _buffer=raw_input("Enter number of messages to simulate (> 0):[10] ")
  64.         except Exception:
  65.             print "Error reading input"
  66.             sys.exit(0)
  67.  
  68.  
  69.         if(_buffer==""):
  70.             n_sim=10
  71.         else:
  72.             try:
  73.                 n_sim=int(_buffer)
  74.             except Exception:
  75.                 print "Please enter a valid value."
  76.                 n_sim=-1
  77.  
  78.     while(loss < 0.0):
  79.         try:
  80.             _buffer=raw_input("Enter the paceket loss probablity (0.0 for no loss): [0.0] ")
  81.         except Exception:
  82.             print "Error reading your input"
  83.             sys.exit(0)
  84.  
  85.         if _buffer=="":
  86.             loss=0.0
  87.         else:
  88.             try:
  89.                 loss=float(_buffer)
  90.             except Exception:
  91.                 print "Please enter a valid value."
  92.                 loss=-1.0
  93.  
  94.     while(corrupt < 0.0):
  95.         try:
  96.             _buffer=raw_input("Enter the packet corruption probablity (0.0 for no corruption):[0.0] ")
  97.         except Exception:
  98.             print "Error reading your input"
  99.             sys.exit(0)
  100.         if _buffer=="":
  101.             corrupt=0.0
  102.         else:
  103.             try:
  104.                 corrupt=float(_buffer)
  105.             except Exception:
  106.                 print "Please enter a valid value."
  107.                 corrupt=-1.0
  108.  
  109.     while(delay <=0.0):
  110.         try:
  111.             _buffer=raw_input("Enter the average time between messages from sender's layer 5 (> 0.0): [1000] ")
  112.         except Exception:
  113.             print "Error reading your input"
  114.             sys.exit(0)
  115.         if _buffer=="":
  116.             delay=1000.0
  117.         else:
  118.             try:
  119.                 delay=float(_buffer)
  120.             except Exception:
  121.                 print "Please enter a valid value."
  122.                 delay=-1.0
  123.  
  124.     while(trace<0):
  125.         try:
  126.             _buffer=raw_input("Enter trace level (>=0): [0] ")
  127.         except Exception:
  128.             print "Error reading your input"
  129.             sys.exit(0)
  130.  
  131.         if _buffer=="":
  132.             trace=0
  133.         else:
  134.             try:
  135.                 trace=int(_buffer)
  136.             except Exception:
  137.                 print "Please enter a valid value."
  138.                 trace=-1
  139.  
  140.     while(seed <1):
  141.         try:
  142.             _buffer=raw_input("Enter random seed: [random] ")
  143.         except Exception:
  144.             print "Error reading your input"
  145.             sys.exit(0)
  146.  
  147.         if _buffer=="":
  148.             seed=int(round(time.time() * 1000))
  149.         else:
  150.             try:
  151.                 seed=int(_buffer)
  152.             except Exception:
  153.                 print "Please enter a valid value."
  154.                 seed=-1
  155.  
  156.     simulator=StudentNetworkSimulator(n_sim, loss, corrupt, delay, trace, seed)
  157.     simulator.run_simulator()
  158.  
  159. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement