Пример #1
0
 def __init__(self, address, port):
     self.retransmission_queue = RetransmissionQueue(self)
     self.retransmission_attempts = dict()
     self.outgoing_buffer = DataBuffer()
     self.state = CLOSED
     self.control_block = ClientControlBlock(address, port)
     self.socket = Soquete(address, port)
     self.packet_builder = PacketBuilder(self)
Пример #2
0
 def handle_timeout(self):
     global count_rets
     count_rets += 1
     if (debug or True):
         print("Parece que se perdió un paquete, voy a reenviar.")
     new_queue = RetransmissionQueue(self)
     for packet in self.retransmission_queue:
         if packet not in self.retransmission_attempts:
             self.retransmission_attempts[packet.get_seq_number()] = 0
         self.retransmission_attempts[packet.get_seq_number()] += 1
         if self.retransmission_attempts[
                 packet.get_seq_number()] >= MAX_RETRANSMISSION_ATTEMPTS:
             self.shutdown()
             self.error = "Intentos de retransmisión superó el máximo"
             break
         else:
             self.send_packet(packet)
         new_queue.put(packet)
     self.retransmission_queue = new_queue