netty 5.0 阻塞问题

MyWayIsMyWay 发布于 2015/01/23 09:39
阅读 752
收藏 0

@geecoodeer 你好,想跟你请教个问题: 

博主,您是怎么解决它阻塞问题的,就是我在启动服务器时同时想连接另一个服务器进行通信,但是调用了.closeFuture().sync()之后线程阻塞了,没办法再起socket与其他服务器通信,望博主解答一下

加载中
0
星爷
星爷
在这段阻塞代码之前起socket   其实也是可以改成异步的  但暂时没有代码。
0
MyWayIsMyWay
MyWayIsMyWay
但是再起socket的话,如果调用.closeFuture().sync(),那还是会阻塞啊,我是这样写的

new ConnectGS().connect(port, "192.168.66.36");

new LogIn().bind(port);

不知道可不可以

0
星爷
星爷
http://www.111cn.net/jsp/Java/52793.htm
0
星爷
星爷
 ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));
  future.awaitUninterruptibly();
  if (!future.isSuccess()) {
   future.getCause().printStackTrace();
  }
  Channel channel = future.getChannel();
 
  channel.getCloseFuture().awaitUninterruptibly();
  factory.releaseExternalResources();
0
星爷
星爷
  Channel channel = bootstrap.bind(new InetSocketAddress(9000));
  allChannels.add(channel);
  // 关闭服务的通知
  // waitForShutdownCommand();
  ChannelGroupFuture future = allChannels.close();
  future.awaitUninterruptibly();
  factory.releaseExternalResources();
0
ray_du
ray_du

那就不要调用 

即服务器启动的时候.closeFuture().sync() 这个代码不要写

0
MyWayIsMyWay
MyWayIsMyWay
不写的话这个线程就直接退出了,那就不能通信了呀
0
ray_du
ray_du

你没贴出代码,看不出具体。 直接退出应该是因为你直接在后面把它给shutdown了,后面对应的shutdownGracefully()也不应该调用了,

返回顶部
顶部