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)
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)