Package com.sun.nio.sctp

Examples of com.sun.nio.sctp.MessageInfo


   */
  void readMessages() throws IOException {
    if (rxTime==0) {
      rxTime = System.currentTimeMillis();
    }
    MessageInfo info = channel.receive( rxBuffer, null, null );
    if (info==null) {
      // happens a lot, some sort of keep-alive?
      if ( getSIPStack().getStackLogger().isLoggingEnabled( LogWriter.TRACE_DEBUG ) ) {
        getSIPStack().getStackLogger().logDebug( "SCTP read-event but no message" );
      }
      return;
    } else if (info.bytes()==-1) {
      getSIPStack().getStackLogger().logWarning( "SCTP peer closed, closing too..." );
      this.close();
      return;
    } else if ( !info.isComplete() ) {
      if ( getSIPStack().getStackLogger().isLoggingEnabled( LogWriter.TRACE_DEBUG ) ) {
        getSIPStack().getStackLogger().logDebug( "SCTP incomplete message; bytes=" + info.bytes() );
      }
      return;
    } else {
      if ( getSIPStack().getStackLogger().isLoggingEnabled( LogWriter.TRACE_DEBUG ) ) {
        getSIPStack().getStackLogger().logDebug( "SCTP message now complete; bytes=" + info.bytes() );
      }     
    }
   
    // Assume it is 1 full message, not multiple messages
    byte[] msg = new byte[ rxBuffer.position() ];
View Full Code Here


  }

  private PayloadData doReadSctp() throws IOException {

    rxBuffer.clear();
    MessageInfo messageInfo = this.socketChannelSctp.receive(rxBuffer, this, this.associationHandler);

    if (messageInfo == null) {
      if (logger.isDebugEnabled()) {
        logger.debug(String.format(" messageInfo is null for Association=%s", this.name));
      }
      return null;
    }

    int len = messageInfo.bytes();
    if (len == -1) {
      logger.error(String.format("Rx -1 while trying to read from underlying socket for Association=%s ",
          this.name));
      this.close();
      this.scheduleConnect();
      return null;
    }

    rxBuffer.flip();
    byte[] data = new byte[len];
    rxBuffer.get(data);
    rxBuffer.clear();

    PayloadData payload = new PayloadData(len, data, messageInfo.isComplete(), messageInfo.isUnordered(),
        messageInfo.payloadProtocolID(), messageInfo.streamNumber());

    return payload;
  }
View Full Code Here

        SctpChannel ch = javaChannel();
        ByteBuf buffer = alloc().directBuffer(config().getReceiveBufferSize());
        boolean free = true;
        try {
            ByteBuffer data = buffer.nioBuffer(buffer.writerIndex(), buffer.writableBytes());
            MessageInfo messageInfo = ch.receive(data, null, notificationHandler);
            if (messageInfo == null) {
                return 0;
            }

            data.flip();
View Full Code Here

            nioData = ByteBuffer.allocate(dataLen);
            data.getBytes(data.readerIndex(), nioData);
            nioData.flip();
        }

        final MessageInfo mi = MessageInfo.createOutgoing(association(), null, packet.streamIdentifier());
        mi.payloadProtocolID(packet.protocolIdentifier());
        mi.streamNumber(packet.streamIdentifier());

        final int writtenBytes = javaChannel().send(nioData, mi);

        final SelectionKey key = selectionKey();
        final int interestOps = key.interestOps();
View Full Code Here

                ByteBuf buffer = alloc().directBuffer(config().getReceiveBufferSize());
                boolean free = true;

                try {
                    ByteBuffer data = buffer.nioBuffer(buffer.writerIndex(), buffer.writableBytes());
                    MessageInfo messageInfo = ch.receive(data, null, notificationHandler);
                    if (messageInfo == null) {
                        return readMessages;
                    }

                    data.flip();
View Full Code Here

                        nioData = ByteBuffer.allocate(dataLen);
                        data.getBytes(data.readerIndex(), nioData);
                        nioData.flip();
                    }

                    final MessageInfo mi = MessageInfo.createOutgoing(association(), null, packet.streamIdentifier());
                    mi.payloadProtocolID(packet.protocolIdentifier());
                    mi.streamNumber(packet.streamIdentifier());

                    ch.send(nioData, mi);
                } finally {
                    packet.release();
                }
View Full Code Here

   */
  void readMessages() throws IOException {
    if (rxTime==0) {
      rxTime = System.currentTimeMillis();
    }
    MessageInfo info = channel.receive( rxBuffer, null, null );
    if (info==null) {
      // happens a lot, some sort of keep-alive?
      if ( getSIPStack().getStackLogger().isLoggingEnabled( LogWriter.TRACE_DEBUG ) ) {
        getSIPStack().getStackLogger().logDebug( "SCTP read-event but no message" );
      }
      return;
    } else if (info.bytes()==-1) {
      getSIPStack().getStackLogger().logWarning( "SCTP peer closed, closing too..." );
      this.close();
      return;
    } else if ( !info.isComplete() ) {
      if ( getSIPStack().getStackLogger().isLoggingEnabled( LogWriter.TRACE_DEBUG ) ) {
        getSIPStack().getStackLogger().logDebug( "SCTP incomplete message; bytes=" + info.bytes() );
      }
      return;
    } else {
      if ( getSIPStack().getStackLogger().isLoggingEnabled( LogWriter.TRACE_DEBUG ) ) {
        getSIPStack().getStackLogger().logDebug( "SCTP message now complete; bytes=" + info.bytes() );
      }     
    }
   
    // Assume it is 1 full message, not multiple messages
    byte[] msg = new byte[ rxBuffer.position() ];
View Full Code Here

        boolean free = true;
        try {
            ByteBuffer data = buffer.internalNioBuffer(buffer.writerIndex(), buffer.writableBytes());
            int pos = data.position();

            MessageInfo messageInfo = ch.receive(data, null, notificationHandler);
            if (messageInfo == null) {
                return 0;
            }
            buf.add(new SctpMessage(messageInfo, buffer.writerIndex(buffer.writerIndex() + data.position() - pos)));
            free = false;
View Full Code Here

            nioData = data.nioBuffer();
        } else {
            data = alloc.directBuffer(dataLen).writeBytes(data);
            nioData = data.nioBuffer();
        }
        final MessageInfo mi = MessageInfo.createOutgoing(association(), null, packet.streamIdentifier());
        mi.payloadProtocolID(packet.protocolIdentifier());
        mi.streamNumber(packet.streamIdentifier());

        final int writtenBytes = javaChannel().send(nioData, mi);
        return writtenBytes > 0;
    }
View Full Code Here

                ByteBuf buffer = allocHandle.allocate(config().getAllocator());
                boolean free = true;

                try {
                    ByteBuffer data = buffer.nioBuffer(buffer.writerIndex(), buffer.writableBytes());
                    MessageInfo messageInfo = ch.receive(data, null, notificationHandler);
                    if (messageInfo == null) {
                        return readMessages;
                    }

                    data.flip();
View Full Code Here

TOP

Related Classes of com.sun.nio.sctp.MessageInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.