我們需要使用Netty 4.0.0二進制文件通過UDP通道廣播對象(Pojo)。
在Netty 4.0.0中,它允許我們僅使用DatagramPacket類來發送UDP數據包。
該類只接受ByteBuf作爲參數。Netty 4.x.x中的UDP廣播
有沒有其他辦法,我們可以通過UDP通道發送Pojo?
爲了進一步澄清,我們做如下:
的UDP通道初始化設置
ConnectionlessBootstrap udpBootstrap;
udpBootstrap.setPipelineFactory(new ChannelPipelineFactory() {
public ChannelPipeline getPipeline() throws Exception {
return Channels.pipeline(
new ObjectEncoder(),
new ObjectDecoder(new NettyElementInfo()),
new UDPBroadcastHandler());
}
});
udpBootstrap.setOption("broadcast", true);
//datagramChannel = (DatagramChannel) udpBootstrap.bind(new InetSocketAddress(udp_port));
datagramChannel = (DatagramChannel) udpBootstrap.bind(new InetSocketAddress(0));
這裏,NettyElementInfo實現Serializable和ClassResolver interfaces.We試圖如下播出這個POJO:
channel.write(new NettyElementInfo(),
new InetSocketAddress("255.255.255.255", 9555));
在接收端,我們的初始化部分和上面一樣。但是,在處理程序中獲得了Po喬如下:
NettyElementInfo elementInfo = (NettyElementInfo)e.getMessage();
這是用網狀3.5.x的
如何使用了Netty 4.0.0複製這種情況下成功完成。請向我們提供示例代碼。
嗨,我面臨同樣的問題。你能幫我,因爲我也在Netty 4.0.0中實現它。 – Shamse