2019独角兽企业重金招聘Python工程师标准>>>
项目需要,需要编写协议转发服务器,和机顶盒通讯使用udp协议
流程:
接收协议->解析->路由->写入log->转发到指定设备.
之前有研究过netty框架,觉得比较轻便,就打算用这个框架来实现,参考官方的simple写了一个测试用例;
发现程序中udp数据怎么都接收不到.
用tcpdump -X udp port 7887听了下包,机器是收到的;
开始找问题.....
bla..bla...bla....
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 {
@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("数据读取");
}
}
怎么比对代码都没有错误,最后逐行查看发现;
import包错了,import部分又正好被ide隐藏了....这种狗血的问题..太让人崩溃了...还是不够仔细啊!!!!!!!!
//正确
import io.netty.channel.socket.DatagramPacket;
//错误
//import java.net.DatagramPacket;