我是用Java socket写的程序
在服务器建立一个线程池,等待客户端的连接请求
客户端向服务器端发出请求,服务器给客户端发送一个文件
,,,,,
我在一台机子上,模拟出若干个客户端,向服务器同时发送请求
,,,
当客户端数量只有100左右时,则可以正常接收文件,当客户端数量达到几百甚至一千时,就只有部分客户端成功接收,其他的抛出java.net.ConnectException: Connection refused: connect
请问,这是为什么?????

解决方案 »

  1.   

    服务端拒绝请求了。  具体什么情况,看服务端是不是报异常。 内存溢出了,还是 too many open file ?
      

  2.   

    服务器没有报异常,,,偶尔会出现溢出,,不过一般都是java.net.ConnectException: Connection refused: connect,,,不知道您有什么经验呢??不知道是不是因为在同一台机子上的原因,如果把这些请求分散到不同机子上会不会就好了呢?
      

  3.   

    你要做测试的话,把 WINDOWS 最大句柄数开高一点。 然后跑client和Server最好指定内次。 512M 比如, 然后 CLIENT 和  SERVER 处理线程的时候用线程池,并指定线程池的线程数。
    最后编译好到 LINUX下做测试,可以是虚拟机下,而且最好换两台机子