当客户端异常端开时服务端如何主动断开连接? (100分)

  • 主题发起人 主题发起人 guqs
  • 开始时间 开始时间
G

guqs

Unregistered / Unconfirmed
GUEST, unregistred user!
我做的CORBA三层应用,当客户端正常关闭时,连接可以断开,但当异常断开时就不行,连接
依然存在,如何解决,让服务端取消此已断开的服务进程?
 
try
调用服务端接口方法
except
corbaconnection.connected:=false;
end;
 
既然客户端已经异常终止,怎么可能再去调用服务端接口方法?
我要的是服务端自己知道断开提供给已终止的客户端的服务进程。
 
我也想知道
 
在服务器端设超时啊
 
怎么设超时,再什么选项或属性里设?
能解释清楚一点吗?
 
Oracle里有超时自动检测功能,可以设置的。
不过我这里有一个很笨的方法,
我在文件型数据库中经常用。
(不要踢我!)
一、在客户端程序放一个时钟控件Timer1 ,假如正常联通,则2秒向服务器端一个表写数据 1,
二、在服务器程序也放一个时钟控件,也隔一定的时间间隔 如10秒向此表写数据 0
三、当服务器的Timer事件发生时,假如发现表中数据 为0,则断开客户端的连接。
 
舟舶通這樣行!
 
呵呵,不错的笨办法!
 
这个办法我也考虑过,但的确是个笨办法,而且浪费资源,如果连接数多的话效率很差,
网络岂不繁忙拥挤?
各位还有没有什么更好的方法,都来出出主意。
 
将你的源码贴出来,我看一看!
 
将你的源码贴出来,我看一看!
 
:三、当服务器的Timer事件发生时,假如发现表中数据 为0,则断开客户端的连接。
:
最关键的是怎样断开?Delphi中没见到有Corba服务器断开客户的方法!
 
建议你把应用服务器做成一个Proxy,你的连接都是连到Proxy,由Proxy控制客户的连接,
如设置超时。
其实Proxy不是什么新东东,是个Pooler而已!
参考Pooler/的例子。
 
我是用的DCOM,请问一下在服务器端,怎么知道客户端已异常退出呢???
 
我在用BCB5做多层结构系统时,我在Server端加入了一个取得服务器IP地址的方法:GetServerIP它的参数是vIP:Variant *,IN方式,并在服务端实现了这个方法,
加入的代码如下:
*vIP="192.168.0.01";最后我注册成功。
可是在我开发客户端程序时,我用TSocketConnection
当取得它的服务时我是这样做的:
Variant* vip;
SocketConnection1->AppServer.GetServerIP(vip);
Edit1->Tex=vip;
可 是我在运行程序时出错,没有编译通过。
它说getserverIP不是variant的成员
getserverIP is not a memober of variant
请问?
我该如何去调用这个方法呢?
请各位大侠多多指教?
小生的QQ:65466700(24小时在线恭候)
MAIL: alongsun@sina.com
 
多人接受答案了。
 
:舟舶通, corba中不知数据模块怎么毁掉自己
 
后退
顶部