如何为arraylist中的对象分配位置以供将来访问(服务器/客户端套接字编程

时间:2017-04-24 16:47:32

标签: java sockets arraylist

我正在尝试创建一个将多个客户端连接到一个服务器的聊天程序,并且服务器需要能够将消息(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");

以下是有关如何运行程序的所有代码和信息的完整上下文(带有屏幕截图),但阅读时间很长:

How to connect multiple clients to one server and distributing messages to specific clients in java socket programming using threads

我的问题是:如何创建在单个端口上连接到一台服务器的客户端列表?这段代码是存储多个客户端及其位置的正确方法,以便我以后可以访问它们吗? (我需要能够选择某些客户端发送消息,同时能够排除其他客户端和/或从列表中删除客户端)

0 个答案:

没有答案