【发布时间】:2013-06-01 01:55:00
【问题描述】:
我正在实现一个可以处理多个客户端的相当简单的服务器,我首先接受这样的客户端
private static Queue<Player> playerList = new ArrayDeque<Player>();
try {
serverSocket = new ServerSocket(port);
// Listen for new clients
Socket clientSocket = null;
int numPlayers = 0;
while (numPlayers < 2){
clientSocket = serverSocket.accept();
if(clientSocket != null){
// Create a new player
Player p = new Player(clientSocket);
// Add them to the list of players
playerList.add(p);
}
}
}
catch (IOException e) {
System.out.println("Could not listen on port: " + port);
System.exit(-1);
}
根据我的阅读,似乎通常会为每个客户端创建一个新线程,但如果有更简单的方法,我真的不认为有必要解决这个问题。我只需要能够在服务器和客户端之间发送和接收消息。
while (true) {
// Check for anything on the buffer
// Parse message
}
有没有简单的方法
监听传入的消息
确定消息来自哪个客户端
解析消息等
全部在一个循环中而不为每个客户端创建单独的线程?
【问题讨论】:
标签: java sockets networking