netty4一个进程内监听多个端口

fafi09 2013-12-25 10:11:21
使用netty框架,怎么在一个进程内监听多个端口
当监听一个端口后,监听会进入阻塞,那另一个端口就没法监听了。
示例程序如下

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) throws Exception {
ch.pipeline().addLast(
//new LoggingHandler(LogLevel.INFO),
new EchoServerHandler());
}
});

// Start the server.
ChannelFuture f = b.bind(port).sync();
ChannelFuture fq = b.bind(9802).sync();
// Wait until the server socket is closed.
f.channel().closeFuture().sync(); ->这里会进入阻塞下边的wait没法进行
fq .channel().closeFuture().sync();

求高手解答,分不多,谢谢
...全文
3341 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wander1210840256 2016-08-28
  • 打赏
  • 举报
回复
看看这个吧 http://stackoverflow.com/questions/12243932/netty-4-0-on-multiple-ports-with-multiple-protocols
冥王之锤 2014-12-03
  • 打赏
  • 举报
回复
在主线程做同步,必然导致阻塞。同netty没什么关系。 放到子线程吧。
mearer 2014-12-03
  • 打赏
  • 举报
回复
可以启动多个线程监听啊
hxywdzk 2014-09-09
  • 打赏
  • 举报
回复
f.channel().closeFuture().addListener(remover); 用这种监听来 /** * 监听 */ private final ChannelFutureListener remover = new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { shutdown(); } }; 这样就不阻了
無牙子 2014-04-08
  • 打赏
  • 举报
回复
我认为是因为你调用了sync()方法造成了阻塞。 我现在想写一个客户端,不知道如何实现socket异常断开的重连机制?求高手指教。
邱游城 2014-02-24
  • 打赏
  • 举报
回复
你好! 你的问题现在解决了吗? 我也和你一样,遇到了同样的问题。
fafi09 2014-01-07
  • 打赏
  • 举报
回复
高手在哪里?
fafi09 2014-01-02
  • 打赏
  • 举报
回复
难道没人知道?
fafi09 2013-12-26
  • 打赏
  • 举报
回复
怎么没人回答啊
   本课程由《Netty 4核心原理作者》亲授。    在互联网分布式系统的推动下,Netty 作为一个能够支撑高性能、高并发的底层网络通信框架而存在。Netty 底层是基于 Java NIO 实现的,对 NIO 进行了非常多的优化,因此深受广大开发者尤其是一线大厂开发者的青睐。    作为一个 Java 开发者,如果没有研究过 Netty,那么你对 Java 语言的使用和理解可能仅仅停留在表面,会点 SSH,写几个 MVC,访问数据库和缓存,这些只是初级 Java 开发者做的事。如果你要进阶,想了解 Java 服务器的高阶知识,Netty一个必须要跨越的门槛。学会了 Netty,你可以实现自己的 HTTP 服务器、FTP 服务器、UDP 服务器、RPC 服务器、WebSocket 服务器、Redis 的 Proxy 服务器、MySQL 的 Proxy 服务器等。    如果你想知道 Nginx 是怎么写出来的,    如果你想知道 Tomcat 和 Jetty 是如何实现的,    如果你也想实现一个简单的 Redis 服务器,    ……    那么你应该好好研究一下 Netty,它们高性能的原理都是类似的。    因为 Netty 5.x 已被官方弃用,本课程内容基于 Netty 4 分析其核心原理,培养高级开发者自己“造轮子”的能力。本课程不仅讲述理论知识,还围绕能够落地的实战场景,开创手写源码的学习方式,使学习源码更加高效。本书的主要特色是首次提供了基于 Netty 手写 RPC 框架、基于 Netty 手写消息推送系统等实战案例。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧