以下是客户端和服务器的源代码。
客户端只连接(并发)到服务器,立即关闭连接。
所有线程完成后,等待2分钟并重新连接。
我很困惑,有时一个简单的连接需要大约3秒!
大部分时间连接需要大约0-32ms。
这里是客户的典型输出:
...
Connect 23 [ms]: 16
Connect 22 [ms]: 32
Connect 21 [ms]: 32
Connect 15 [ms]: 32
Connect 14 [ms]: 16
Connect 13 [ms]: 16
Connect 11 [ms]: 32
Connect 25 [ms]: 3016这似乎只在客户端和服务器位于不同主机上时才会发生。
Windows和Linux可比较的行为
Java 1.6.23
启动服务器2参数需要:
[端口] [线程池大小]
启动客户端需要3个参数:
[主机] [端口] [线程池大小]
例如,我为服务器使用了150个线程池大小,为客户端使用了25个线程池大小。
任何人都可以解释这种行为吗?
-----服务器-----
package de.test.server;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorServic