现在做到一个项目的其中一个模块,是需要是很多个并发连接24小时不停发送传输数据的每个连接一个socket是不可行的吧,应该怎么做。求方案或例子
如何测试服务器的socket可用数的上限

解决方案 »

  1.   

    服务器监听一个端口,客户端全部用socket连上这个端口就可以了。。
      

  2.   

    一个socket啊,能承受多少个客户端连接过来24小时发数据啊
      

  3.   

    每个连接一个socket是不可行的吧,应该怎么做。======================================每个连接当然需要一个socket啊。服务器端监听,每有一个连接进来就开启一个线程处理这个连接。
      

  4.   

    首先,24小时,这是个长连接,需要考虑每个连接一个socket,
    而服务器的socket可用数,如果是window系统的话,可以修改注册表设置最大数目的临时的 TCP 端口,可以参考http://support.microsoft.com/kb/q196271/。
    linux系统的话,可以修改配置信息,具体的我不记得了,你网上找找。
    还有,24小时不停发送传输数据,这样的话,就要考虑一个网络负载的问题了,如果发送的数据量大的话,你一台服务器再多的连接数,网络也负载不了。
    所以建议采用分布式使用多台服务器。
      

  5.   

    连接分为连入和连出,一般作为服务器以连入为主(当然也有连出的,暂不考虑)。不管是连入还是连出,系统为每一个有效socket描述符都会分配一定的资源,包括句柄等,当连接建立之后,系统会为每一个连接分配并维护一个上下文资源,其中包括未分页内存存储空间。对于Win32系统来说,未分页内存是有限的,并且不随物理内存的增加而增加,从而使得整个系统的相关资源变得非常有限,目前测试过的也就50~60K连接,要支持100k需要做相当多的优化工作。而对于连出则受socket端口号的限制,当然,如果是连接不同的服务器或者端口倒也可以通过端口重用来解决。http://topic.csdn.net/u/20090121/09/04df8667-deb5-428b-b303-118019c29446.html
    楼主参考下这个