当前位置:主页>销售管理软件> 列表

关于SOCKET的使用问题 找蓝牙设备管理软件

销售管理软件版1楼: 客户端使用Socketconnection连接位于公网的服务器上的中间层,中间层再连接数据库。
现在的问题是出现了死连接在Socketserver上,也就是客户端连接上了服务器,只是不知道为什么客户端断开了连接,Socketserver上还显示着那些连接?
怎么样才能去掉这些死连接?设置过timeout.

2楼: ClientDisconnect 如进销存系统课程设计

3楼: 没这个事件啊!

4楼: 可以定时检查客户是否继续连接,如果已经断开,则主动关闭服务器端的连接。

5楼: 在中间层做一个CheckClientLink()过程,移除那些死连接

6楼: 现在服务器端只是被动的接收,连接的开与关都在客户端。
服务器端怎么关闭连接啊?
楼上的请详细说明一下!

销售管理软件版7楼: 使用KEEPALIVE属性设置,就可以了。
当连接断开以后会有返回,这样你去处理就是了!

8楼: To fxh7622:
什么控件的KEEPALIVE属性啊?

To All:
流程是:客户端中的Clientdateset连接socketconnection,socketconnection连接服务器上的中间层,borland socket server 此时开始显示客户端的ip和最后活动时间。中间层上不能得到客户端的连接信息啊!

9楼: 做网络的东西,功能简单。我建议你用控件。


但是如果功能很复杂,在网络上需要实现各种东西我建议你用API。
KEEPALIVE是套接字的属性。也就是说你需要对套接字进行设置。在INDY下设置此属性非常麻烦(据我设置来说需要修改INDY的代码)。所以建议你用API。

10楼: 设置scktsrvr的Inactive Timeout
Inactive Timeout就是多少時間後(好像是分鐘)客戶端沒有發出信息就斷開連接,這個很有用,可以清除一些“死連接”,例如,連接著的時候撥網線就會有一定機率出現服務器還在連接,但客戶端已經斷開的現象。

11楼: 设置过TIMEOUT了,不管用啊,经常有在上边挂了N天的死连接,设置的是600

12楼: 我测试了一下,在公司的局域网中使用设置TIMEOUT时间管用,可是连接到在公网的服务器就不管用了,是不是服务器那边还需要做什么关于socket方面的配置??

请各位路过的,也帮忙顶一下,谢谢!! 如蓝牙设备管理软件

13楼: TIMEOUT设太长了,设置10就行了,它的单位是分钟,然后客户端每隔3分钟联接一下服务端。
----
设置过TIMEOUT了,不管用啊,经常有在上边挂了N天的死连接,设置的是600
-----

销售管理软件版14楼: to ava:
现在应该不是TIMEOUT的设置问题,而且它的单位应该是秒,我在公司的局域网中测试过,在物理断连接后,局域网服务器上的TIMEOUT设置了60后,在大约1分钟的时间该死连接被踢出了,应该是相关到服务器的设置之类的。

TO ALL:
服务器是最近刚做的系统Windows 2000 Server(SP4),应用程序只装了MSSQL SERVER2000(SP3)、瑞星、VNC。
哪位大哥作过用Socketconnection做三层的,帮忙指点一下!

15楼: 应该是分钟吧,上面明明写着的是分钟的。而且我也试过确实是按照分钟来算的。
我用的是D2006的那个Scktsrvr.exe

16楼: 晕,刚看了Scktsrvr.exe,真是minute,丢人了!
可为什么,我测的时候一分钟就踢了??

17楼: 问题解决了,应该是与服务器的系统问题有关。重做了遍系统!
原来的timeout也有问题。

18楼: 主要是TIMEOUT的问题
其他几位给出的方法也都可以用只是做的改动大一些了!

19楼: 多人接受答案了。