上一篇博客介绍了ConnectException产生的一种情况就是没有服务器进程监听指定的端口。
还有一种情况就是服务器进程设置了最大等待队列的长度。
凡是没有执行ss.accept()方法的进程都是在队列中的,凡是大于次队列的都会拒绝链接
import java.net.Socket;
public class SimpleClient {
public static void main(String args[]) throws Exception{
Socket s1 = new Socket("localhost",8000);
System.out.println("第一次链接成功!");
Socket s2 = new Socket("localhost",8000);
System.out.println("第二次链接成功!");
Socket s3 = new Socket("localhost",8000);
System.out.println("第三次链接成功!");
}
}
import java.io.IOException;
import java.net.ServerSocket;
public class SimpleServer {
public static void main(String args[]){
try {
ServerSocket serverSocket = new ServerSocket(8000,2);
Thread.sleep(360000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
第一次链接成功!
第二次链接成功!
Exception in thread "main" java.net.ConnectException: Connection refused: connect