如何从客户端关闭套接字?

时间:2012-04-11 12:01:01

标签: java sockets netty

我有一个使用netty开发的服务器和客户端。在使用相同的通道写几条消息后,在客户端,我尝试关闭套接字(释放资源)。我按照说明@ http://netty.io/docs/unstable/guide/html/#start.12

完成上述步骤后,客户端仍未关闭。

任何一位网络专家都可以帮助我。

此致 Ť

2 个答案:

答案 0 :(得分:1)

该代码似乎缺少实际关闭频道的调用。我相信你想在第14行之前实际呼叫Channel.close()

答案 1 :(得分:0)

我在我的代码中这样做:

public class TimeClient {
  public static void main(String[] args) throws Exception {
        ...
      ChannelFactory factory = ...;
        ClientBootstrap bootstrap = ...;
      ...
        ChannelFuture future(29) = bootstrap.connect(...);
      future.awaitUninterruptibly();(30)
        if (!future.isSuccess()) {
          future.getCause().printStackTrace();(31)
        }
      ... YOUR BUSINESS LOGIC HERE
      future.getChannel().close().awaitUninterruptibly();(32)
        factory.releaseExternalResources();(33)
  }
}