我建立了2个连接,从JMeter实例到Apache服务器,从Apache服务器到部署在Jonas中的Java应用程序。
当我终止JMeter进程时,与Apache的连接用[RST]关闭。然后Apache向Jonas发送[FIN,确认字符]。Jonas没有发送所有数据,所以它继续发送数据。Jonas稍后用[FIN,确认字符]关闭连接。这种行为在TCPRFC中描述。
所以,问题是Apache从Jonas接收所有数据,即使Apache不能将其发送到JMeter。
我的问题是:能否在收到Apache发送的FIN、确认字符后触发我的Java应用程序?
不直接,最终java可能会从InputStream或OutputStream抛出IOException,但这取决于平台。
在JDK7发布之前,有人谈到了“原始套接字”java实现,但不知何故,我认为它从未起步。
能否在收到Apache发送的FIN确认字符后触发我的Java应用程序?
是的,但您必须从连接中读取。您将以各种形式之一获得流结束,具体取决于您调用的读取方法。请参阅Javadoc。