我有一个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
}
答案 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--;
}
由于简单起见,我不在此示例中使用线程同步..