难、难、难!高手请近!(50分)

  • 主题发起人 主题发起人 cjfandhf
  • 开始时间 开始时间
C

cjfandhf

Unregistered / Unconfirmed
GUEST, unregistred user!
1.用Tsocketconnection 连接appserver(remote data modual)
在捕获异常中: on ESocketConnectionErrordo
在异常断开捕获不到!
2.borland socket server(srcksrv.exe)不能删除异常断开的连接,有没有
高版本的(srcksrv.exe)或别的办法?
3.appserver咋释放异常短开tsocketconnection的资源!

请各位高手赐教!不胜感激!分全给你!
 
我的使用方法:
1:我只是在数据传输的时候连接,用完就断开。
2:将异常处理集中在尝试进行连接的过程中。
至于速度,还可以。
 
可否在APPSERVER端设一个标志,让客户端每隔一段时间
去改变,如果到了此时间标志仍未变化,可认为该客户端
已经异常死掉,然后自己释放自己。
不知有没有比较好的办法?
 
试试继承TSocketConnection.重载DoError.
 
小生认为,光靠TCP/IP是不能立即获知断开的发生,
正如 cmldy所说 试一试设标志位。
 
设标志的方法我用过,不太好使,想想,当前端程序进行一个大操作,它可能要
等几十秒才能活回来,这段时间如果服务器得不标志刷新,就强行结束连接,前端
就惨了。
我用TClientSocket(不是MIDAS的)时发现,当一个客户端与Server断开时,
Server就会出Exception,我倒觉得,问题要从底层解决,
 
为什么要维持连续状态,否则的话,要用的时候,去连接就行了,
当然了,如果在短时间内的操作都不能完成的话,就没话好说了.
 
客户端异常(如死机),APPSERVER能知道吗?
连scktsrvr.exe都一直挂着呢
 
使用on e:exceptiondo
捕获异常吧?
 
一点意见:设标志的方法可行,但是应该反过来由Server端进行探测,在客户端的另外一个线程中创建一个简单的COM对象,当客户端启动时将接口传给服务器,由服务器
定时进行探测(也在一个线程中)。
好像DCOM就是采用的这种方法。
 
多人接受答案了。
 
后退
顶部