SOCKET的程序,服务端可能有几百个接入的客户端,但是每个客户端数据量并不很大,程序常常运行
一周左右,就发生所有的客户端都无法接入,很奇怪,因为程序在外地使用,大家有这方面经验的帮我判断一下有可能会是什么原因造成的?

解决方案 »

  1.   

    你在服务器端输出日志看看,会在哪一步出现错误。socket程序,要注意资源释放。
      

  2.   

    你在服务端是否将这些client的连接保持在诸如数组或者Hashtable中,你应该每过一段时间检查一下连接是否可用,如果不可用则释放之。
      

  3.   

    一般会是哪些资源?我是用C#的socket类写的
      

  4.   

    你注意一点就可以了;基本所有的对客户端的连接、操做原则上都用局部变量;并且在使用完后关闭SOCKET连接;
    对了,你用了数据库了吧;别忘了把数据的连接也关了。
    再告诉你一个应急的办法。在早上3-4点让服务器重起;
    重起用:shell执行 shutdown -t 1 -r
      

  5.   

    说了这么多,小弟我也来说说。实际上,关于这个socket的问题,多年前就不是问题了。做socket设计的时候,一定要考虑,尽量让客户端的链接先释放掉,然后再释放服务器的否则造成的问题是服务器的资源要等一般4分钟才能释放,linux/unix一般如此windows有时资源是不可见的,在linux/unix下边你查看进程状态就会看到。这够了吧,我很少来,如果有疑问,或者给我留言,或者就到club.yyhot.com区找我吧,帮帮朋友
      

  6.   

    哦,我记得有2本关于tcp/ip编程的书的,是上下两册的。
    里面有关于这方面的介绍,不过都是说linux/unix的