我从JMeter实例到Apache Server建立了2个连接,从Apache服务器到部署在Jonas中的Java应用程序建立了连接。
当我终止JMeter进程时,使用[RST]关闭与Apache的连接。然后Apache向Jonas发送[FIN,ACK]。 Jonas没有发送所有数据,所以它不断发送数据。 Jonas稍后用[FIN,ACK]关闭连接。 TCP RFC中描述了此行为。
所以,问题是Apache从Jonas接收所有数据,即使Apache无法将其发送给JMeter。
我的问题是:我的Java应用程序是否可以在收到来自Apache的FIN发送的FIN后触发?
答案 0 :(得分:0)
不直接,最终java可能会从InputStream或OutputStream中抛出IOException,但这与平台有关。
在JDK 7发布之前,人们谈到了“原始套接字”java实现,但不知何故我认为它从未实现过。
答案 1 :(得分:0)
我的Java应用程序可以在收到来自Apache的FIN发送的FIN后触发吗?
是的,但你必须从连接中读取。根据您调用的读取方法,您将以各种形式获得流的结尾。见Javadoc。