def send(self, flag, message): #print ("\nTYPE = " + self.type) self.send_buffer = message if self.remote == None: raise 'must call "bind()" first' #client initializes connection elif flag == None and self.type == "CLIENT" and self.STATE == "ESTABLISHED": buffer = [] while len(message) > 0: buffer.append(message[:self.window_size]) if len(message) < self.window_size: message = '' else: message = message[self.window_size:len(message)] for s in buffer: pack = Packet(s, self.remote) pack.flag = None pack.seq_number = self.packet_number top_data = pack.seq_number + pack.length print ("-> data " + str(pack.seq_number) + " - " + str(top_data)) self.packet_number = top_data self.cache[pack.seq_number + pack.length] = pack, self.current_time() self.sched.add(self.current_time(), pack, self.send_data)