java SSLsocket卡在关闭\u等待中
我有一个独立的应用程序正在监听42555端口
GWT应用程序被部署到Tomcat服务器(版本6)。GWT应用程序通过SSLsocket与独立服务器通信。对于每个用户会话,在应用程序之间建立三个socket。当用户注销时,我们断开连接并关闭socket。但是,当我在Linux机器(单机版和tomcat版)上运行netstat时,我可以看到3个连接(基于每个用户)处于关闭等待状态
当用户处于活动状态时。netstat提供以下信息
tcp 0 0 127.0.0.1:60143 127.0.0.1:42555 ESTABLISHED 12746/tomcat
tcp 0 0 127.0.0.1:60144 127.0.0.1:42555 ESTABLISHED 12746/tomcat
tcp 0 0 127.0.0.1:60145 127.0.0.1:42555 ESTABLISHED 12746/tomcat
tcp 0 0 127.0.0.1:42555 127.0.0.1:60143 ESTABLISHED 30525/./standalone_server
tcp 0 0 127.0.0.1:42555 127.0.0.1:60144 ESTABLISHED 30525/./standalone_server
tcp 0 0 127.0.0.1:42555 127.0.0.1:60145 ESTABLISHED 30525/./standalone_server
用户注销并断开/关闭插座后。netstat提供
tcp 70 0 127.0.0.1:60143 127.0.0.1:42555 CLOSE_WAIT 12746/tomcat off (0.00/0/0)
tcp 70 0 127.0.0.1:60145 127.0.0.1:42555 CLOSE_WAIT 12746/tomcat off (0.00/0/0)
tcp 70 0 127.0.0.1:60144 127.0.0.1:42555 CLOSE_WAIT 12746/tomcat off (0.00/0/0)
当用户在客户端单击注销时,我将关闭inputStream、outputStream和socket。在独立服务器端,socket保存在映射中(socket映射为会话基础),并在2小时后关闭(基于socket的最后一个请求)
看到这一切后,我无法确定问题所在。基于netstat,它显示tomcat应用程序建立的socket并没有完全关闭。但是,当我在本地windows机器上以开发模式(gwt应用程序)运行服务器时,socket完全关闭了。这证明了应用程序级别没有问题。但当我在谷歌上搜索CLOSE_WAIT state时,在tomcat方面也没什么意义
有人能告诉我错误发生在哪里吗
PS:我是网络和tcp/ssl协议栈的新手,注销的netstat仅在2小时后完成
共 (0) 个答案