Ejemplo n.º 1
0
def main(tout, filename):
    global timeout
    global hostname
    global portnum
    global file_contents
    global total_packets
    global payload_max
    global len_of_chunks

    timeout = int(tout)
    channelInfo = open("channelInfo", 'r')
    deets = channelInfo.read().split(' ')
    hostname = deets[0]
    portnum = int(deets[1])
    clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    print payload_max
    print filename
    try:
        with open(filename, 'rb') as f:
            sequenceNum = 0
            while True:
                packet = struct.pack("L4", PacketType.DataPacket)
                packet += struct.pack("L4", sequenceNum)

                f.seek(sequenceNum * payload_max)
                chunk = f.read(payload_max)
                if chunk:
                    length_of_chunk = sys.getsizeof(chunk)
                    packet += struct.pack("L4", length_of_chunk + 12)
                    print length_of_chunk
                    packet += struct.pack("s" + str(length_of_chunk), chunk)
                    file_contents.append(packet)
                    chunk_packet = Packet()
                    chunk_packet.changeSequenceNum(sequenceNum)
                    chunk_packet.overridePacketLength(length_of_chunk)
                    len_of_chunks.append(chunk_packet)
                    sequenceNum = sequenceNum + 1
                else:
                    break
    except:
        print "Failed to open file to transmit"
        sys.exit(0)

    total_packets = len(file_contents)
    sendFiles(clientSocket)
Ejemplo n.º 2
0
def main(tout, filename):
    global timeout
    global hostname
    global portnum
    global file_contents
    global total_packets
    global payload_max
    global len_of_chunks
    
    timeout = int(tout)
    channelInfo = open("channelInfo", 'r')
    deets = channelInfo.read().split(' ')
    hostname = deets[0]
    portnum = int(deets[1])
    clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    print payload_max
    print filename
    try:
        with open(filename, 'rb') as f:
            sequenceNum = 0
            while True:
                packet = struct.pack("L4", PacketType.DataPacket)
                packet += struct.pack("L4", sequenceNum)

                f.seek(sequenceNum * payload_max)
                chunk = f.read(payload_max)
                if chunk:
                    length_of_chunk = sys.getsizeof(chunk)
                    packet += struct.pack("L4", length_of_chunk+12)
                    print length_of_chunk
                    packet += struct.pack("s"+str(length_of_chunk), chunk)
                    file_contents.append(packet)
                    chunk_packet = Packet()
                    chunk_packet.changeSequenceNum(sequenceNum)
                    chunk_packet.overridePacketLength(length_of_chunk)
                    len_of_chunks.append(chunk_packet)
                    sequenceNum = sequenceNum + 1
                else:
                    break
    except:
        print "Failed to open file to transmit"
        sys.exit(0)

    total_packets = len(file_contents)
    sendFiles(clientSocket)