Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I want to create a RTSP client, to send some RTSP message. I use netty to write this, but my code can only send one message. how to send another message? My client Code like this:

public class RtspClient {
    public static class ClientHandler extends SimpleChannelInboundHandler<DefaultHttpResponse> {
        @Override
        public void channelReadComplete(ChannelHandlerContext ctx) {
            ctx.flush();
        protected void channelRead0(ChannelHandlerContext ctx, DefaultHttpResponse msg) throws Exception {
            System.out.println(msg.toString());
    public static void main(String[] args) throws InterruptedException {
        EventLoopGroup workerGroup = new NioEventLoopGroup();
        final ClientHandler handler = new ClientHandler();
        Bootstrap b = new Bootstrap();
        b.group(workerGroup);
        b.channel(NioSocketChannel.class);
        b.option(ChannelOption.SO_KEEPALIVE, true);
        b.remoteAddress("127.0.0.1", 8557);
        b.handler(new ChannelInitializer<SocketChannel>() {
            protected void initChannel(SocketChannel ch) {
                ChannelPipeline p = ch.pipeline();
                p.addLast("encoder", new RtspEncoder());
                p.addLast("decoder", new RtspDecoder());
                p.addLast(handler);
        Channel channel = b.connect().sync().channel();
        DefaultHttpRequest request = new DefaultHttpRequest(RtspVersions.RTSP_1_0, RtspMethods.PLAY, "rtsp:123");
        request.headers().add(RtspHeaderNames.CSEQ, 1);
        request.headers().add(RtspHeaderNames.SESSION, "294");
        channel.writeAndFlush(request);
        Thread.sleep(10000);
         System.out.println(channel.isWritable());
         System.out.println(channel.isActive());
            request = new DefaultHttpRequest(RtspVersions.RTSP_1_0, RtspMethods.TEARDOWN, "rtsp3");
            request.headers().add(RtspHeaderNames.CSEQ, 2);
            request.headers().add(RtspHeaderNames.SESSION, "294");
        channel.writeAndFlush(request);
        Scanner sc = new Scanner(System.in);
        sc.nextLine();
        channel.closeFuture().sync();

this code could only send first message. The server did not receive the second data. how to send another message?

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.