gpt4 book ai didi

java - 在客户端关闭后通过 SocketChannel 向客户端发送数据

转载 作者:行者123 更新时间:2023-12-02 07:29:30 25 4
gpt4 key购买 nike

我有一个客户端和一个服务器应用程序,其中客户端发送一个数据字节,表明用户已关闭客户端窗口并终止客户端程序。问题是服务器可能会在丢弃该客户端之前向该客户端发送最后一个通知。如果服务器在阻塞模式下使用 SocketChannel 的 write 方法,它会无限期地阻塞还是只是被忽略?我应该让客户端在断开连接之前等待“断开连接确认”吗?

最佳答案

它不会永远阻塞,也不会被忽略。如果套接字发送缓冲区中有空间用于数据,它很可能根本不会阻塞。如果它确实阻塞,则可能会引发 IOException:“连接被对等方重置”,或者它可能只是解除阻塞并正常返回。对此没有任何预测。这种情况是不正确的,不应该允许发生。您可以通过关闭两个输出套接字然后读取直到获得 EOS 来达到商定的相互关闭点;那么双方都在同一点并且可能会关闭。

关于java - 在客户端关闭后通过 SocketChannel 向客户端发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com