gpt4 book ai didi

java - 检测服务器端 FIN 数据包

转载 作者:可可西里 更新时间:2023-11-01 02:47:14 27 4
gpt4 key购买 nike

我有以下 Java 代码:

Socket s = new Socket();
s.connect(mySockAddr, myTimeout);

假设我不使用套接字,我需要在服务器端连接关闭时检测到它(FINRST 数据包)。
例如,虽然检查套接字状态的线程,或拦截 FIN/RST 数据包...

如何检测?
我已经尝试使用 printWriter.checkError()socket.isConnected()socket.isClosed() 方法,但没有任何效果。

最佳答案

我知道检测对方是否关闭连接的唯一方法是尝试从输入流中读取。从关闭的套接字读取将返回 -1。这是您的通知,不再需要阅读。

就其他函数而言,s.isConnected() 告诉您是否已成功connect()ed 套接字和s。 isClosed() 会告诉您 是否关闭了它。它不会告诉你对方做了什么。

关于java - 检测服务器端 FIN 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975519/

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