在服务器端调用ServerSocket ss=new ServerSocket(8000,2);
while(true)
{
ss.accpet();
}在客户端上调用
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("第三次连接成功!");结果在客户端上打印的居然三次都成功
小弟不明白了,ServerSocket明明不是定义最长的客户端队列长度为2么?
while(true)
{
ss.accpet();
}在客户端上调用
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("第三次连接成功!");结果在客户端上打印的居然三次都成功
小弟不明白了,ServerSocket明明不是定义最长的客户端队列长度为2么?
ServerSocket
public ServerSocket(int port)
throws IOException创建绑定到特定端口的服务器套接字。端口 0 在所有空闲端口上创建套接字。
传入连接指示(对连接的请求)的最大队列长度被设置为 50。如果队列满时收到连接指示,则拒绝该连接。 如果应用程序已指定服务器套接字工厂,则调用该工厂的 createSocketImpl 方法来创建实际套接字实现。否则创建“普通”套接字。 如果存在安全管理器,则首先使用 port 参数作为参数调用其 checkListen 方法,以确保允许该操作。这可能会导致 SecurityException 异常。
backlog是指连接的队列的长度,好像不是连接的数量
看看:http://zhidao.baidu.com/question/137352021.html