项目须要,须要编写协议转发服务器,和机顶盒通信使用udp协议java
流程:服务器
接收协议->解析->路由->写入log->转发到指定设备.框架
以前有研究过netty框架,以为比较轻便,就打算用这个框架来实现,参考官方的simple写了一个测试用例;socket
发现程序中udp数据怎么都接收不到.tcp
用tcpdump -X udp port 7887听了下包,机器是收到的;ide
开始找问题.....测试
bla..bla...bla....spa
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import java.net.DatagramPacket; /** * Created by konbluesky * Date : 15/7/16 上午12:37 */ public class UDPServerHandler extends SimpleChannelInboundHandler<DatagramPacket> { @Override public void channelRegistered(ChannelHandlerContext ctx) throws Exception { super.channelRegistered(ctx); System.out.println("链接建立"); } @Override protected void channelRead0(ChannelHandlerContext ctx, DatagramPacket msg) throws Exception { ctx.writeAndFlush(msg); System.out.println("数据读取"); } }
怎么比对代码都没有错误,最后逐行查看发现;.net
import包错了,import部分又正好被ide隐藏了....这种狗血的问题..太让人崩溃了...仍是不够仔细啊!!!!!!!!netty
//正确 import io.netty.channel.socket.DatagramPacket; //错误 //import java.net.DatagramPacket;