客户端非正常断线,服务器的资源释放问题(200分)

  • 主题发起人 主题发起人 apiao
  • 开始时间 开始时间
to apiao:
你可以把你解决的方法发给我一份吗?都急死我了。
wenqihe@sina.com.cn
 
如果有一次非正常断线,服务器的CPU资源得不到释放,你可以在下一次正常连接后,立即退出即可把上次占用的资源释放掉,你可以试验一下。
 
什么时候给资料呀,我也有这个问题????
 
给我也发一份,谢了!matiecheng_hm@163.com
 
to apiao:
可不可以发一份给我,我现在正在做这方面的项目,用的是MIDAS的ScktSrvr和TSocketConnection
可是这个问题不好解决,现在很急的。qyyuan@runsun.com
 
学习中。。。。。。。。
非常感兴趣,能不能给我一分,我也在做DCOM,
虽然没有这个问题,但我希望以后工作遇到了不要再来问了。
我的:zq9811@163.com
 
我给一个解决方案:
A方案:
1:在RDM的OnCreate中把Name,创建时间和Self放到一个TstringList中去。
2:Client链接时,把Client的IP送过来。
3;在MainForm中起一个Thread,去检测TstringList中的Object列表。如果
发现某个对象的创建已经超过规定的时间(如:1小时),就执行死亡检测
简单点就是Ping。如果OK更新TStringLIst中的时间,如果NO就释放;
可用入下代码:
CoDisconnectObject(TRDMList(TstringList.Items.Objects[SelIndex]).ComObject, 0);
(这是 Dan Miser 也就是Midas主开发人给出Demo,如果要我可以发给你)
但我的试验好像不行,
所以我用:
TRDMList(TstringList.Items.Objects[SelIndex]).Free
B.在Scktsrvr中设置Timeout。由以下的代码可见,是能够释放服务资源的,
我也试验过
ScktMain.pas
........................................
procedure TSocketDispatcherThread.ClientExecute;
............................
if FTimeout = 0 then
WaitTime := INFINITE else
WaitTime := 60000;
while not Terminated and FTransport.Connecteddo
try
case MsgWaitForMultipleObjects(1, Event, False, WaitTime, QS_ALLEVENTS) of
WAIT_OBJECT_0:
begin
WSAResetEvent(Event);
Data := FTransport.Receive(False, 0);
if Assigned(Data) then
begin
FLastActivity := Now;
FInterpreter.InterpretData(Data);
Data := nil;
FLastActivity := Now;
end;
end;
WAIT_OBJECT_0 + 1:
while PeekMessage(msg, 0, 0, 0, PM_REMOVE)do
DispatchMessage(msg);
WAIT_TIMEOUT:
if (FTimeout > 0) and ((Now - FLastActivity) > FTimeout) then
FTransport.Connected := False;
end;

祝你好运![:)][:D][8D][8D]
 
资料整理出来了吗?给一份:xwtao@sina.com.cn 谢谢!!!!
 
TO 向问天 :
您好 ! 能给份 Dan Miser 写的 Demo 我吗?谢谢!
E-MAIL : Trest007@163.com
 
我现正烦这个呢!能给我一份吗:csw11@21cn.com
 
Dan Miser 写的Demo可到:
URL http://homepages.borland.com/dmiser/RDMDisconnect.zip 去DownLoad,
要我该写的ScktSrvr。exe请发Email 到borland@163.com
可以自动断掉不正常的断线,释放服务。
 
可不可以发一份给我,我现在正在做这方面的项目
bill.robin@263.net
 
apiao,能不能给我发一份,我也有这个现象.99%
Bill.Robin@263.net
 
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=1354567
关注一下吧没有人提起来呀!用MODEM打电话利用PC机的耳机和麦克风,自己编程如何实现?
(我知道有现成的软件可以用,但是我想自己实现这个上东西)
QQ:65466700
MAIL: along@b2sun.com
TEL :13802785865
http://b2sun.com
请各位大侠多多指教!
 
可不可以每30秒发serversock发一个数据包给clientsock,如果成功
clientscok端返回一个数据包给serversock看一下连接有没有丢失?
 
后退
顶部