Пример #1
0
 protected void sendNAK(List <long> sequenceNumbers)
 {
     try
     {
         if (sequenceNumbers.Count == 0)
         {
             return;
         }
         NegativeAcknowledgement nAckPacket = new NegativeAcknowledgement();
         nAckPacket.addLossInfo(sequenceNumbers);
         nAckPacket.setSession(session);
         nAckPacket.setDestinationID(session.getDestination().getSocketID());
         endpoint.doSend(nAckPacket);
         statistics.incNumberOfNAKSent();
     }
     catch (Exception exc)
     {
         Log.Write(this.ToString(), exc);
     }
 }
Пример #2
0
 /**
  * write a NAK triggered by a received sequence number that is larger than
  * the largestReceivedSeqNumber + 1
  * @param currentSequenceNumber - the currently received sequence number
  * @throws IOException
  */
 protected void sendNAK(long currentSequenceNumber)
 {
     try
     {
         NegativeAcknowledgement nAckPacket = new NegativeAcknowledgement();
         nAckPacket.addLossInfo(largestReceivedSeqNumber + 1, currentSequenceNumber);
         nAckPacket.setSession(session);
         nAckPacket.setDestinationID(session.getDestination().getSocketID());
         //put all the sequence numbers between (but excluding) these two values into the
         //receiver loss list
         for (long i = largestReceivedSeqNumber + 1; i < currentSequenceNumber; i++)
         {
             ReceiverLossListEntry detectedLossSeqNumber = new ReceiverLossListEntry(i);
             receiverLossList.insert(detectedLossSeqNumber);
         }
         endpoint.doSend(nAckPacket);
         //logger.info("NAK for "+currentSequenceNumber);
         statistics.incNumberOfNAKSent();
     }
     catch (Exception exc)
     {
         Log.Write(this.ToString(), exc);
     }
 }