Exemple #1
0
def fileReceiver():
    serverSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    serverSocket.bind(('', 10080))

    Pbuf = MyPacket.PacketBuffer(0)
    rhandler = MyPacket.RecvHandler(Pbuf, serverSocket)

    rhandler.recv(writePkt, writeAck, writeEnd, 2048)

    rhandler.write()
Exemple #2
0
def fileSender(recvAddr, windowSize, srcFilename, dstFilename):
    clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    clientSocket.connect((recvAddr, 10080))

    logfile = open(dstFilename + '_sending_log.txt', 'w')

    Pbuf = MyPacket.PacketBuffer(windowSize)
    shandler = MyPacket.SendHandler(Pbuf, clientSocket, logfile)

    thSend = Thread(target=shandler.sendto, args=((recvAddr, 10080), writePkt))
    thAck = Thread(target=shandler.check_acked, args=(writeAck, ))
    thTimer = Thread(target=shandler.timer, args=(writeAck, writeEnd))

    firstpacket = MyPacket.Packet((dstFilename + ':' + shandler.myaddr[0] +
                                   ';' + str(shandler.myaddr[1])).encode(),
                                  False, 0)
    shandler.buf.append(firstpacket)

    filedata = open(srcFilename, 'rb')
    ackNum = 1
    retdata = None

    while True:
        retdata = filedata.read(1024)
        if not retdata:
            shandler.buf[-1].end = True
            break
        shandler.buf.append(MyPacket.Packet(retdata, False, ackNum))
        ackNum += 1
    filedata.close()

    thSend.start()
    thAck.start()
    thTimer.start()

    thSend.join()
    thAck.join()
    thTimer.join()

    i = 0
    totalRTT = 0
    length = shandler.length
    print("[SENDER] goodput : %f, avgRTT : %f" %
          (shandler.goodput, shandler.avgRTT))
    writeEnd(logfile, shandler.goodput, shandler.avgRTT * 1000)
    logfile.close()
    clientSocket.close()