三层程序用socket连接的,如果网络断了,怎么样把出错信息改成友好的,并能关闭程序,在哪里写呢?

解决方案 »

  1.   

    小伍哥果然重出江湖了...
    http://community.csdn.net/Expert/topic/4061/4061964.xml?temp=.4145014
    帮忙看一下下...
      

  2.   

    楼上的答非所问也。三层架构中的Socket连接是使用DataSnap中的SocketConnection来实现的,并不是Win Socket中的那个Socket。在程序中并不能直接用这个SocketConnection来发送"握手"或"心跳"数据的。SocketConnection有个AfterDisconnect事件,但是不清楚是在出现楼主所说的报错界面之前的事件还是之后的来件。对SocketConnection不熟,帮不了楼主什么忙。
      

  3.   

    SocketConnection还有一个BeforeDisconnect事件, 楼主有没有试试?
      

  4.   

    SocketError中,最好強制ErrorCode=1我用internet中ClientSocket
      

  5.   

    其实不用管这样多。要不,你自己用 ServerSocket 与 ClientSocket 自已写一套 Midas 组件。
    自已数据封包,自已发送,自已接收。
      

  6.   

    SocketConnection还有一个BeforeDisconnect事件, 楼主有没有试试?用这个的话好像不能应付意外中断,比如拔掉网线。
      

  7.   

    我是这样解决的:
    在应用服务器端,所有更新(用SQLquery)都用事务管理,出错会回滚
    在客户端所有对数据库操作时都加一个判断:是否处于连接状态,未连接的先连接再对数据库操作
    暂时连接不通可先存于本地,一旦连接通,即自动向数据库更新
    不用去管其他的,使用中断线没问题呀.系统也很稳定的.
    另外,SocketConnection还是适用于局域网,如果是INTERNET这种网络环境是不适合,要开发WEB服务