关于ServerSocket中的请求队形

来源:互联网 发布:鸡尾酒会问题 python 编辑:程序博客网 时间:2024/05/17 02:53

知道这里是高手如云,所以到这里来求助了.

小弟我最近在学JAVA的网络编程,在看电子工业出版社出的<<JAVA网络编程精解>>,在看关于ServerSocket的时候出了点问题.

有一个构造函数里有个参数是指明等待队列的长度,如果当前服务器的等待队列已经满了的话,又没有及时的accept(),再来的请求就会被拒绝,可以是书上有例子,代码我贴上来:

Client.java

import java.net.*;
import java.io.*;
public class Client {
  
public static void main(String args[])throws Exception{
    
final int length=100;
    String host
="localhost";
    
int port=8888;

    Socket[] sockets
=new Socket[length];
    
for(int i=0;i<length;i++){  //试图建立100次连接
      sockets[i]=new Socket(host, port);
      System.out.println(
""+(i+1)+"次连接成功");
      Thread.sleep(
1000);
    }

    Thread.sleep(
3000);
    
for(int i=0;i<length;i++){
      sockets[i].close();  
//断开连接
    }

  }

}

 Server.java

 

import java.io.*;
import java.net.*;
public class Server {
  
private int port=8888;
  
private ServerSocket serverSocket;

  
public Server() throws IOException {
    serverSocket 
= new ServerSocket(port,3);  //连接请求队列的长度为3
    System.out.println("服务器启动");
  }


  
public static void main(String args[])throws Exception {
    Server server
=new Server();
    Thread.sleep(
60000*10);  //睡眠十分钟
  }

}

按书上的说明运行后的结果在连接第三次后会抛出异常,不过我在电脑上试的时候没有看到任何异常被抛出,

这个到底是怎么回事,已经困扰我好多天了,望各位高手帮帮忙!!!!!!

原创粉丝点击