protected void send( ByteBuffer data, boolean copy, boolean wakeup )
    {
        // We create a ByteBuffer per endpoint since we
        // use it to track the data sent to each endpoint
        // separately.
        ByteBuffer buffer;
        if( !copy ) {
            buffer = data;
        } else {
            // Copy the buffer
            buffer = ByteBuffer.allocate(data.remaining());
            buffer.put(data);
            buffer.flip();
        }

        // Queue it up
        outbound.add(buffer);

        if( wakeup )
            kernel.wakeupSelector();
    }
The wakeup option is used internally when the kernel is
 broadcasting out to a bunch of endpoints and doesn't want to
 necessarily wakeup right away.
jme3-networking/src/main/java/com/jme3/network/kernel/tcp/NioEndpoint.java