我正在尝试创建一个将多个客户端连接到一个服务器的聊天程序,并且服务器需要能够将消息(utf-8字符串)分发给某些客户端而不是其他客户端。我正在尝试创建一个客户列表(每个客户端在arraylist中的位置)。
这里是我目前拥有的代码,用于在arraylist中创建客户端列表(在这种情况下客户端是对象)并以某种方式使用位置来区分每个客户端(如果可以分配数字或以某种方式对某个对象或客户的位置,我想这样做。)
(下面的代码在一个名为ChatServer的类中)(它是一个原型,不是正确/最佳的解决方案,我只是使用它作为我的第一个粗略草案想法,当我学习如何时,它可能会改变它创建客户列表)
第一个想法/解决方案/草稿(使用arraylist):
ArrayList<Object> ListOfClients = new ArrayList<Object>();
int ClientPositionInList = 0;
int numberofclients = 0;
for(int i = 0; i < ListOfClients.size(); i++)
{
socket = serverSocket.accept();
ClientPositionInList = i;
ListOfClients.add(Client);
numberofclients = numberofclients + 1;
}
System.out.println("Here is the list of currently connected clients": ListOfClients");
以下是有关如何运行程序的所有代码和信息的完整上下文(带有屏幕截图),但阅读时间很长:
我的问题是:如何创建在单个端口上连接到一台服务器的客户端列表?这段代码是存储多个客户端及其位置的正确方法,以便我以后可以访问它们吗? (我需要能够选择某些客户端发送消息,同时能够排除其他客户端和/或从列表中删除客户端)