SSL套接字卡在CLOSE_WAIT中

时间:2015-01-11 18:59:30

标签: java sockets tomcat gwt ssl

我有一个独立的应用程序正在收听42555端口。

GWT应用程序已部署到Tomcat服务器(版本6)中。 GWT应用程序通过SSL套接字与独立服务器通信。对于每个用户会话,在应用程序之间建立了三个套接字。当用户注销时,我们断开连接并关闭套接字。但是当我在Linux机器上执行netstat(独立和tomcat)时,我能够看到3个连接(每个用户)挂在CLOSE_WAIT状态。

当用户有效时。 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)

当用户在客户端单击logout时,我关闭inputStream,outputStream然后关闭socket。在独立服务器端,套接字保存在Map中(套接字以会话为基础进行映射),并在2小时后关闭(基于套接字的最后请求)。

看到这一切后,我无法确定问题。基于netstat,它显示tomcat应用程序建立的套接字没有完全关闭。但是当我使用开发模式(gwt应用程序)在本地Windows机器上运行服务器时,套接字正在完美关闭。这证明应用程序级别没有问题。但当我用Google搜索CLOSE_WAIT状态时,在tomcat方面也没有任何意义。

有人能指出我发生错误的地方吗?

PS:我是网络和tcp / ssl堆栈中的新手,并且仅在2小时后才注销了netstat。

0 个答案:

没有答案