Beispiel #1
0
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")
Beispiel #2
0
    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)