2017-05-02 3 views
1

ProttyufペイロードをNettyのUDPプロトコルで使用する方法は?カスタムprotobufプロトコルで私にこれの例を教えてください。 また、TCPプロトコルでは1つの例しかありません。ProttyufペイロードをNettyのUDPプロトコルで使用する方法は?カスタムprotobufプロトコルで私にこれの例を教えてください。

ます。public voidバインド(int型ポート)は、例外{

EventLoopGroup bossGroup = new NioEventLoopGroup(); 
    EventLoopGroup workerGroup = new NioEventLoopGroup(); 
    try { 
     ServerBootstrap b = new ServerBootstrap(); 
     b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).option(ChannelOption.SO_BACKLOG, 100) 
       .handler(new LoggingHandler(LogLevel.INFO)).childHandler(new ChannelInitializer<SocketChannel>() { 
        @Override 
        public void initChannel(SocketChannel ch) { 
         ch.pipeline().addLast(new ProtobufVarint32FrameDecoder()); 
         ch.pipeline().addLast(new ProtobufDecoder(RichManProto.RichMan.getDefaultInstance())); 
         ch.pipeline().addLast(new ProtoBufServerHandler()); 
        } 
       }); 


     ChannelFuture f = b.bind(port).sync(); 

     System.out.println("init start"); 

     f.channel().closeFuture().sync(); 
    } finally { 
     bossGroup.shutdownGracefully(); 
     workerGroup.shutdownGracefully(); 
    } 
} 
+1

最初にコードを試してください。 –

+1

私が知っているように、Nettyは、UDPを使用しているときにNioDatagramChannelを使用する必要があります。私はprotobufを使用したいが、私はNioDatagramPacketを得た。どのようにprotobufに変換するには? – Sakura

答えて

0

私も同じ問題を抱えていますがスローされます。しかし、私はbyte []に​​変換するDatagramPacketを受け取るコードをリファクタリングし、parseFrom(byte [])メソッドを使用してProtoBufオブジェクトにデシリアライズし直します。

関連する問題