Esempio n. 1
0
 /**
  * handle the connection handshake:<br/>
  * <ul>
  * <li>set initial sequence number</li>
  * <li>send response handshake</li>
  * </ul>
  * @param handshake
  * @param peer
  * @throws IOException
  */
 protected void handleHandShake(ConnectionHandshake handshake)
 {
     try
     {
         ConnectionHandshake responseHandshake = new ConnectionHandshake();
         //compare the packet size and choose minimun
         long clientBufferSize      = handshake.getPacketSize();
         long myBufferSize          = getDatagramSize();
         long bufferSize            = Math.Min(clientBufferSize, myBufferSize);
         long initialSequenceNumber = handshake.getInitialSeqNo();
         setInitialSequenceNumber(initialSequenceNumber);
         setDatagramSize((int)bufferSize);
         responseHandshake.setPacketSize(bufferSize);
         responseHandshake.setUdtVersion(4);
         responseHandshake.setInitialSeqNo(initialSequenceNumber);
         responseHandshake.setConnectionType(-1);
         responseHandshake.setMaxFlowWndSize(handshake.getMaxFlowWndSize());
         //tell peer what the socket ID on this side is
         responseHandshake.setSocketID(mySocketID);
         responseHandshake.setDestinationID(this.getDestination().getSocketID());
         responseHandshake.setSession(this);
         Log.Write(this.ToString(), "Sending reply " + responseHandshake);
         endPoint.doSend(responseHandshake);
     }
     catch (Exception exc)
     {
         Log.Write(this.ToString(), exc);
     }
 }