ServerSocket其中一个构造函数中有backlog参数,我把它设为1,但它却允许两个连接,请问如果我想只允许一个连接,应该怎么做?

解决方案 »

  1.   

    package csdn;
    import java.io.IOException;
    import java.net.*;
    public class Server { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    ServerSocket ss = null;
    try {
    System.out.println("Server starting....");
    ss = new ServerSocket(1983,1);
     
    int conNum =0;
    while(conNum<2){//这里控制
    conNum++;
    Socket sget= ss.accept();
    System.out.println(""+sget.getInetAddress());
    System.out.println(""+sget.getPort());
    }


    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }}package csdn;
    import java.io.IOException;
    import java.net.*;
    public class Client { /**
     * @param args
     */
    public Client(){
    System.out.println("connect");
    try {
    Socket s = new Socket (InetAddress.getLocalHost(),1983);
    } catch (UnknownHostException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    new Client();new Client();new Client();new Client();new Client();
    }}