当前位置: 首页 > 知识库问答 >
问题:

网的紧密连接

茅星雨
2023-03-14

我有一个项目使用了Netty,但存在一些问题:

如果连接空闲一段时间,连接是否会关闭自己?如果它自己关闭,我如何设置关闭时间?

有5个线程,它们发送100个数据。他们使用相同的频道

 /** release connect*/
    public void closeConnect(ChannelFuture writeFuture){
    if(writeFuture != null){
        writeFuture.awaitUninterruptibly();
    }
    future.getChannel().close();
    future.getChannel().getCloseFuture().awaitUninterruptibly();
    client.releaseExternalResources();
    }

    //write data
    ChannelFuture future = Channels.write(data);
    closeConnect(future);

上述代码将导致closeChannelexception。我的问题是:如何避免例外?

此外,当我在客户端使用ReadTimeoutHandler并设置timeout=5s时,我使线程Hibernate6s,然后发生ReadTimeoutExc0019。当我调用e.getChannel(). off()时,它还会创建一个CloseChannelExc0019。我如何处理异常自己或关闭连接无异常?

共有2个答案

穆旭尧
2023-03-14

试着这样做:

/**释放连接*/

public void closeConnect(ChannelFuture writeFuture){
if(writeFuture != null){
    writeFuture.awaitUninterruptibly();
}
future.getChannel().getCloseFuture().awaitUninterruptibly();
future.getChannel().close().awaitUninterruptibly();
client.releaseExternalResources();
}

//write data
ChannelFuture future = Channels.write(data);
closeConnect(future);

尝试先关闭通道未来,然后通道本身。

微生昌勋
2023-03-14

如果API抛出ReadTimeoutException,您可以捕获它,然后调用closeConnect(…)

但在我看来,这条通道已经关闭;因此,要么忽略CloseChannelException,要么在它影响程序状态时处理它。

 类似资料:
  • ResNet中的跨层连接设计引申出了数个后续工作。本节我们介绍其中的一个:稠密连接网络(DenseNet) [1]。 它与ResNet的主要区别如图5.10所示。 图5.10中将部分前后相邻的运算抽象为模块$A$和模块$B$。与ResNet的主要区别在于,DenseNet里模块$B$的输出不是像ResNet那样和模块$A$的输出相加,而是在通道维上连结。这样模块$A$的输出可以直接传入模块$B$后

  • 我试图通过GridBagLayout实现以下目标: 框架将接收一组“字段”(JLabel,JTextField对),我想以“网格状”的方式排列它们,其中一行将包含两个这样的对(JLabel1 JField1 JLabel2 JField2)。当一行包含这四个组件时,下一个组件将添加到另一行。 编辑:我希望组件从面板顶部开始 我的代码生成以下布局。我希望组件的布局更紧凑(尤其是垂直距离) 下面是代码

  • 我阅读了tornado和相关模块,以了解当接受套接字并解析和处理请求时,tornado会做什么。 然后我向tornado发送一些请求,所有请求都被设置为读取超时3秒,我在tornado上发现了一些连接,几分钟后,这些连接正常关闭。 我猜5秒处理程序是减缓tornado的事件循环,当tornado处理第二个处理程序时,它的连接已经关闭,如果tornado知道了,它就不需要再做下一步了。

  • 我知道密集层意味着一个典型的完全连接层,这意味着每个输入都将到每个神经元进行乘法。但最近我脑海中出现了一些问题,当在youtube、博客、StackOverflow和文章上搜索时,没有人给我满意的答案。 1-为什么我们需要神经网络中的全连接(密集)层,它的用法?我们不能使用稀疏层吗(意味着一些输入只会到达一些神经元,所以所有神经元不会得到所有输入) 2-如果我们使用稀疏层会发生什么?我知道计算量会

  • 我正在尝试通过websocket连接到一个使用自签名证书的后端服务器。在firefox中,我为自签名证书添加了一个例外。 但是我的websocket连接wss://无法连接。我得到一个代码为1006的close事件,这是一个捕获所有代码的事件。 铬和IE网络插座工作。由于我使用的是 Windows,因此我使用 certmgr.exe作为受信任的证书安装了证书。 我现在的猜测是firefox web

  • 我有一个程序,可以将其进度打印到控制台。每20步,它就会打印出步数,如10、20、30等。但在此范围内,它会打印一个点。这是使用末尾带有逗号的print语句打印的(python 2.x) 不幸的是,我注意到这些点是分开打印的,就像这样: 我希望这个更紧,如下所示: 在visual basic语言中,如果在print语句的末尾添加分号而不是逗号,则可以得到此表单。在Python中是否有类似的方法,或