限制与服务器的连接数

时间:2015-07-23 22:11:55

标签: java server

我有一个Java的多线程服务器,但是我想将连接的客户端数量限制为2.它是一个基本的应用程序,只是用于测试。

在我的服务器上,我有一个int userNo属性,为客户端分配值0或1。

我的问题是,有没有更好的方法来处理这个问题。我只想要最多2个客户端进行连接,我希望我的应用程序忽略任何进一步的请求。

Pseduo代码:

    if(userNo == 0) {
    this is player 1;
    }
    if (userNo == 1) {
    this is player 2;
    }
    else {
    do nothing
    }

1 个答案:

答案 0 :(得分:1)

我会做这样的事情:

int connectedClientCount = 0;
// ...
while(true) {
    ServerSocket ss = ...
    Socket s = ss.accept();
    if(connectedClientCount == 2) {
        // Do stuff to tell connected Client that he is rejected because of max clients...
    } else {
        connectedClientCount++;
        // cool stuff...
    }
}

以及代码中的其他位置(在客户端断开连接时执行)

public void clientDisconnected() {
    connectedClientCount--;
}

由于简单起见,我不在此示例中使用线程同步..