gpt4 book ai didi

java - 如果在读取字节之前断开连接,TCP 套接字连接上的字节是否会丢失?

转载 作者:行者123 更新时间:2023-12-01 09:59:39 25 4
gpt4 key购买 nike

如果我有一个选择器,它接受套接字并将它们推送到队列以供其他线程处理,并且没有线程占用套接字,例如两分钟,并且客户端推送数据,但随后超时并断开连接。当线程获取那些现已关闭的socket之一并尝试从中读取数据时,它会获取客户端已发送的数据,还是会获取客户端已发送的数据?没有什么可读的吗?

最佳答案

这取决于“切断”的含义。

  • 如果您自己关闭了套接字,您将从各种 read() 方法中得到 SocketException: socket returned
  • 如果连接被对等方正常关闭,则在发出流结束信号之前将读取所有待处理的数据。
  • 如果连接被异常重置,所有待处理的数据都会丢失。

关于java - 如果在读取字节之前断开连接,TCP 套接字连接上的字节是否会丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36909811/

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