本人有一个程序用ServerSocket作为在线审核服务器, 最高峰时同时会有60个客户端连上去,
均采用异步通信,但服务端运行10-30天,客户端就没有办法连上去,必须启动ServerSocket服务端.
由于不好测试,同时5个同事曾每人每次发2万张单据,测了一天,都没有出现这样的现象, 一直未能测试去真正的原因。
请大家能帮分析原因. 在些感激不尽。

解决方案 »

  1.   

    用udp组件吧,tcp的问题多多啊,不好调试容易出错
      

  2.   

    用udp组件吧,tcp的问题多多啊,不好调试容易出错UDP组件比Socet 稳定吗?
      

  3.   

    用的什么版本DELPHI带的?
    可以试试用高版本的ServerSocket服务程序,D7带的有时候出问题
      

  4.   

    是不是时间长有什么数据溢出了?我记得原来用GettickCount的时候,就会出现数据溢出的问题~~~
      

  5.   

    是不是用了GetTickCout之类的函数, integer 溢出
      

  6.   

    用的delphi6, 估计原因是内存泄漏。但有没有能自动检查出哪些内存泄漏的工具?
      

  7.   

    只能记录日志, 或者每一句代码彻底的分析,   觉得应该不会在serversocket上
      

  8.   

    1 控件自身的问题,INDY本身就不稳定。
    2 操作系统撑不住,建议装win2003要好一些
    3 如果一定要用SOCKEY 建议不用INDY 的控件,直接用API,这样要稳定的多
      

  9.   

    4 装一个CodeSite v2.0 出错了会保存日志,说明哪里错了,还何以给你发邮件,很方便,强烈建议
      

  10.   

    复于:2009-07-21 11:15:28死连接太多,端口耗尽了,其实网上有解决方法,你找找 
    -》怎么测试端口耗尽了,网上有解决方法吗?只能记录日志, 或者每一句代码彻底的分析,  觉得应该不会在serversocket上
    -> 能不能检查到每一时刻(例如每分钟)serversocket挂了多少个clientsocket关键的步骤都应该打上日志,像连接、断开、异常等等,通过日志比较好判断,不然没依据很难处理的。 
    顺便问下楼住,可户端连不上是报什么错误啊?
    —> 客户端连不上,10061,
    1 控件自身的问题,INDY本身就不稳定。 
    2 操作系统撑不住,建议装win2003要好一些 
    3 如果一定要用SOCKEY 建议不用INDY 的控件,直接用API,这样要稳定的多
    ->用是Tserversocket 服务用的是win2003 且是专用IBM服务器 数据库是sql 20054 装一个CodeSite v2.0 出错了会保存日志,说明哪里错了,还何以给你发邮件,很方便,强烈建议
    -> 这个我到网上找一下。谢谢大家!
      

  11.   

    最简单就是每隔一段时间去检查没有没死连接,如果有就Kill,