一、开发环境:VB2003
二、项目情况:我做的一个客户端程序,与服务器端进行TCP/IP Socket通讯,同步短连接方式.
步骤为:
Socket.Connect
If Socket.Connected Then
If Socket.Send Then
'设置接收超时时间
If Not Socket.Receive Then
'记录通讯超时日志
End If
Else
'记发送失败日志
End If
Else
'记连接失败日志
End
Socket.Shutdown(Both)
Socket.Close
Socket = Nothing
个人觉得这个流程应该很清晰了,不会有什么问题,而且这种方式的程序我做过好几个了,都用着呢,都没问题,可偏偏就这一个程序出问题了,搞得我头都大了.
三、异常情况:经常数据发送过去后无响应回来.严重时在服务器端重启了以后,最多两三次通讯,我这边就再也收不到服务器的响应了。
四、服务器端环境:WINDOWS SERVER 2003,开发语言JAVA(是外单位,了解到的就这么多)
五、注:服务器端最多允许我的客户端同时有三个连接上去。日志显示,我这边经常有连接使用后没有关闭,一直挂在那里,导致最后三个可用连接耗完,我这边发送的数据服务器就再也收不到了。
问题:
我这边明明在关闭前shutdown了才close的,怎么会服务器端就是看到我没关闭呢?有没有高人帮我分析一下?