import util if __name__ == '__main__': if len(sys.argv) != 3: print('Usage: python file_sender.py [dummy|ss|gbn] [file_name]') sys.exit(1) transport_layer = None transport_layer_name = sys.argv[1] file_name = sys.argv[2] assert os.path.isfile(file_name) start_time = time.time() try: transport_layer = util.get_transport_layer_by_name( transport_layer_name, config.SENDER_LISTEN_PORT, config.RECEIVER_LISTEN_PORT, None) with open(file_name, 'rb') as f: while True: msg = f.read(config.MAX_MESSAGE_SIZE) if not msg: break print('MSG of length ' + str(len(msg))) while not transport_layer.send(msg): pass except KeyboardInterrupt: print('bye...') exit() finally: if transport_layer: transport_layer.shutdown() end_time = time.time()
# Usage: python demo_sender.py [dummy|ss|gbn] import config import sys import util if __name__ == '__main__': if len(sys.argv) != 2: print('Usage: python demo_sender.py [dummy|ss|gbn]') sys.exit(1) transport_layer = None name = sys.argv[1] try: transport_layer = util.get_transport_layer_by_name( name, config.SENDER_LISTEN_PORT, config.RECEIVER_LISTEN_PORT, None) for i in range(20): msg = 'MSG:' + str(i) print(msg) while not transport_layer.send(str.encode(msg)): pass finally: if transport_layer: transport_layer.shutdown()
import util def msg_handler(file_handle, msg): file_handle.write(msg.decode('utf-8')) if __name__ == '__main__': if len(sys.argv) != 3: print('Usage: python file_receiver.py [dummy|ss|gbn] [file_name]') sys.exit(1) transport_layer = None transport_layer_name = sys.argv[1] file_name = sys.argv[2] assert not os.path.exists(file_name) file_handle = None try: file_handle = open(file_name, 'w') transport_layer = util.get_transport_layer_by_name( transport_layer_name, config.RECEIVER_LISTEN_PORT, config.SENDER_LISTEN_PORT, functools.partial(msg_handler, file_handle)) while True: time.sleep(1) finally: if file_handle: file_handle.close() if transport_layer: transport_layer.shutdown()
# Usage: python demo_receiver.py [dummy|ss|gbn] import config import sys import time import util def msg_handler(msg): print(repr(msg)) if __name__ == '__main__': if len(sys.argv) != 2: print('Usage: python demo_receiver.py [dummy|ss|gbn]') sys.exit(1) transport_layer = None name = sys.argv[1] try: transport_layer = util.get_transport_layer_by_name( name, config.RECEIVER_LISTEN_PORT, config.SENDER_LISTEN_PORT, msg_handler) while True: time.sleep(1) finally: if transport_layer: transport_layer.shutdown()
def msg_handler(file_handle, msg): file_handle.write(msg) if __name__ == '__main__': if len(sys.argv) != 3: print('Usage: python file_receiver.py [dummy|ss|gbn] [file_name]') sys.exit(1) transport_layer = None transport_layer_name = sys.argv[1] file_name = sys.argv[2] assert not os.path.exists(file_name) file_handle = None try: file_handle = open(file_name, 'w') transport_layer = util.get_transport_layer_by_name( transport_layer_name, config.RECEIVER_LISTEN_PORT, config.SENDER_LISTEN_PORT, functools.partial(msg_handler, file_handle)) while True: time.sleep(1) finally: if file_handle: file_handle.close() if transport_layer: transport_layer.shutdown()