恶意 ? 你的服务器连接都是你的客户端,你可以设置客户端只开启一次或者你用UDP 再或者你用心跳包,检测到断开,就清理掉对于的Session的资源。
随便弄啊

解决方案 »

  1.   

    学习腾讯的方法就好了,有没有数据用UDP判断,不用TCP长连接方式,免得别人搞鬼
      

  2.   


    不懂什么意思?!因为LZ的想法是用占用线程不释放的方式建立长连接,并维护他,他担心的是别人恶意的开多个线程来占用他服务器的资源。
    既然这样的话,那不如用短连接,或者是UDP的方式,接收到了就接收到了没收到就没收到。如果想做网游的那种服务端,你没发现所有的网游服务端都是有人数限制的么??那中情况大多数就是硬件设备的限制。
    我现在做的项目就是这样,与其花精力去维护长连接增加服务器压力,还不如花点相对小点的开销,来每次通讯都建立连接,反正又不是做游戏。
      

  3.   

    长连接也不需要占用任何一个线程。保存一个客户端连接,不过是一个(例如说)TcpClient对象或者是(例如说)Socket对象保存在集合里,当消息到来时就会触发BeginReceive所注册的回调方法。当没有消息到来,根本不用什么线程。
      

  4.   

    加入有5000人连接,你整一堆(至少5001个)线程在那里“死循环、信号量阻塞”着,那是你的服务器的悲哀。游戏服务器有人数限制,是因为带宽、CPU运算能力的限制,而不是因为要这么整一堆线程。
      

  5.   


    我想你一定没有测试过繁忙的业务下使用短链接的延迟、对服务器的压力会有多大。这相当于一个公司要进行繁忙的商业活动,每一次去银行办事时都把自己的账户重新进行一次开户,折腾这些东西然后才进行一次业务。长连接下服务器压力更低,而不是更高,比如说CPU使用率从60%降低到6%。
      

  6.   


    我想你一定没有测试过繁忙的业务下使用短链接的延迟、对服务器的压力会有多大。这相当于一个公司要进行繁忙的商业活动,每一次去银行办事时都把自己的账户重新进行一次开户,折腾这些东西然后才进行一次业务。长连接下服务器压力更低,而不是更高,比如说CPU使用率从60%降低到6%。嗯,你猜对了,我确实没有经历过特别繁忙,我写的通讯只是只支持过2000-3000人同时使用,这种小范围的使用,所以我就一直用的短连接,看了你说的,我的确要开始考虑长连接了··谢了
      

  7.   


    我想你一定没有测试过繁忙的业务下使用短链接的延迟、对服务器的压力会有多大。这相当于一个公司要进行繁忙的商业活动,每一次去银行办事时都把自己的账户重新进行一次开户,折腾这些东西然后才进行一次业务。长连接下服务器压力更低,而不是更高,比如说CPU使用率从60%降低到6%。嗯,你猜对了,我确实没有经历过特别繁忙,我写的通讯只是只支持过2000-3000人同时使用,这种小范围的使用,所以我就一直用的短连接,看了你说的,我的确要开始考虑长连接了··谢了
    2000-3000人同时使用????是不是游戏?那也不少了啊。
      

  8.   


    我想你一定没有测试过繁忙的业务下使用短链接的延迟、对服务器的压力会有多大。这相当于一个公司要进行繁忙的商业活动,每一次去银行办事时都把自己的账户重新进行一次开户,折腾这些东西然后才进行一次业务。长连接下服务器压力更低,而不是更高,比如说CPU使用率从60%降低到6%。嗯,你猜对了,我确实没有经历过特别繁忙,我写的通讯只是只支持过2000-3000人同时使用,这种小范围的使用,所以我就一直用的短连接,看了你说的,我的确要开始考虑长连接了··谢了
    2000-3000人同时使用????是不是游戏?那也不少了啊。呵呵,不是游戏,如果是游戏,我用短连接就是找死···就是一个业务系统,我几年的努力将这套系统从边缘系统变成了企业的核心业务系统,现在回想,还真有点不容易啊