def processConn(address, data): protocol = Protocol() start = time.time() sock = protocol.createSocket() try: try: f = open(data, 'r') print(data) data = f.read() f.close() except: print("No such file found.") data = "NSF" ack = protocol.sendPacket(sock, data, address) print("Client informed. Removing Client.") sock.close() return #send data to client in packets of size MTU packets, retransmissions = protocol.sendPackets(sock, data, address) sock.close() print("\nTransfer done.") print(packets, " packets transmitted.") print(retransmissions, " retransmissions.") print("Time Elapsed: ", str(time.time() - start)) except Exception as e: print(e) print("Server Error")
parser = argparse.ArgumentParser( description='Send and receive files on Reliable UDP') parser.add_argument('-ip', help='Server IP') parser.add_argument('-p', metavar='PORT', type=int, default=1060, help='UDP port') args = parser.parse_args() server_addr = (args.ip, args.p) filename = input("File Requested: ") newfile = filename.split(".")[0] + "_client_copy." + filename.split(".")[1] f = open(newfile, 'w') sock = protocol.createSocket() sock.settimeout(10) try: sock.sendto(filename.encode(), server_addr) protocol.seqFlag = 0 while True: #get packet seq, msglen, msg, ackstatus = protocol.recvPacket(sock) print(msg) if not ackstatus: continue if msg == "NSF": print("No such file found at server.") os.remove(newfile)