package cc.zychen.com;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.codec.DelimiterBasedFrameDecoder;
import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
import io.netty.handler.codec.LengthFieldPrepender;
import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.logging.LogLevel;
import io.netty.handler.logging.LoggingHandler;
public class EchoServer {
public void bind(int port) throws Exception {
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
protected void initChannel(SocketChannel ch) throws Exception {
// TODO Auto-generated method stub
ch.pipeline().addLast(new LengthFieldBasedFrameDecoder(65535,0,4,0,4));
ch.pipeline().addLast(new MsgPackDecoder());
ch.pipeline().addLast(new LengthFieldPrepender(4,false));
ch.pipeline().addLast(new MsgPackEncoder());
ch.pipeline().addLast(new EchoServerHandler());
}
});
//bind port
ChannelFuture f = b.bind(port).sync();
//wait
f.channel().closeFuture().sync();
}finally{
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
}
}
/**
* @param args
*/
public static void main(String[] args) {
int port = 8080;
try {
if(args != null && args.length > 0){
port = Integer.parseInt(args[0]);
}
new EchoServer().bind(port);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
byxdaz
- 粉丝: 1w+
- 资源: 67
最新资源
- 基于java的船运物流管理系统的设计和实现.docx
- 基于java的船舶监造系统的设计和实现.docx
- 基于java的果蔬作物疾病防治系统的设计和实现.docx
- 基于java的福泰轴承股份有限公司进销存系统的设计和实现.docx
- 基于java的甘肃旅游服务平台的设计和实现.docx
- 基于java的考勤管理系统的设计和实现.docx
- 基于java的滑雪场管理系统的设计和实现.docx
- 基于java的航班进出港管理系统的设计和实现.docx
- 基于java的旅游管理系统的设计和实现.docx
- 基于java的考务报名平台 的设计和实现.docx
- 基于java的粮仓管理系统的的设计和实现.docx
- 基于java的美发管理系统的设计和实现.docx
- 基于java的民航网上订票系统的设计和实现.docx
- 基于java的美术馆管理系统的设计和实现.docx
- 基于java的社区帮扶对象管理系统的设计和实现.docx
- 基于java的社区待就业人员信息管理系统的设计和实现.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈