我做的C/S三层SQL数据库,使用socket方式局域网传输数据。编程时,在局域网内数据传输良好。
    但在某企事业局域网上调试时,ADOConnect不能连接。多天调试不能连接。该局域网 internet正常,只是不能socket无端连接,但本地ADOConnect有效(服务器与客户端同一计算机)。就是远端不能连接。    今天发现:只要重新启动路由器,在三分钟内,可以连接,但之后立即断线。    路由器是阿尔法牌,切断路由器“防火墙”也是如此。现提请各位大侠,帮助分析解决此问题。

解决方案 »

  1.   

    三分钟之后telnet一下端口是否通的,如果不通,检查一下路由器是否做了限制?
      

  2.   

    看样子应该和路由器没有关系。socket的错误代码是什么?你的系统是三层架构么?如果是,既然本地ado可以连通,那可以把中间层和数据层共用一个服务器。
      

  3.   

    一、我的三层ADO SQL2005数据库工作环境:
        1、三层环境 ADO SQL2005 Win7 采用delphi socket套字符连接。
        2、局域网ADSL下连阿尔法AFR-R1800路由器,下接连接器;工作组JYH-WEB。
        3、socket主服务器,win7 SQL2005 ADO动态库。
        4、客户端win7 或XP,socket应用层。二、表现现象
        今天,发现重新启动由器时,能够远程连接的原因:重新启动路由器时,首先关闭internet连接,重新读取或设置相关参数,再连接internet,此间花费时间大约2-3分钟。正是在此期间,可以进行短暂的远程连接。三、分析原因
        1、动态IP分配
        2、外网商品冲突
        3、路由器部分电路坏
        4、关闭211瑞口
        .......   真是头痛,问题始终不能解决。现谋求各位大侠,帮助解决,献计献策。   
      

  4.   

    路由器重新启动期间,切断了内网与外网的连接,路由器(服务器)的相关设置为nill,我认为这与路由器有直接的关系。
        1、网关
        2、防火墙
        3、IP地址分配(静态、动态)
        4、DNS
        ......
      

  5.   

    服务器的ip最好是固定的,起码也得在dhcp服务器里把它设置为固定的ip
      

  6.   

    问题已经解决。调试情况:
        1、新购路由器,换上后“问题”依然。说明“问题”不在路由器。
        2、拨掉“ADSL”后,即无internet访问后,“问题”消失。因为,之前我在家里的局域网中,调试是在"东方有线"网上。所以,又开始怀懝“ADSL”。准备在"东方有线"网上试一次。
        3、关闭路由器的防火墙,“问题”依然。对路由器分别设置不同的环境,依然如故。
        4、调试三层连接时,发现只要internet断线,“问题”消失。试着关闭internet.....,这时我就想,如果在程序中,加入切断internet的语句,也许....
        5、试着调整系统IP设置,让客户端IPv6对internet无效,IPv4使用静态IP,“问题”解决。调试心得:
        1、自己的网络管理水平有限。需加强学习。
        2、IPv6和IPv4机制?
        3、为何二地调试结果不一样呢?
        4、这里是否有“病毒”作祟?
        5、调试网络一定把全部的(环境)情况,都要设置完整。上述,公示给大伙,“抛砖引玉”。好了可以轻松地睡上一觉啦。大家来接分吧。