我要做的是让第二组的客户互相交流。因此,如果两个客户端连接起来,它们将只能相互通信,如果第三个客户端连接起来,它将无法与其他两个客户端通信,但它将创建另一组2个客户端,以此类推。。。现在,如果一个客户端发送一条消息,它会将它发送给所有客户端,但我不知道如何让它们以2人一组的方式进行通信。
我正在使用ArrayList存储所有ip和端口:
private ArrayList<InetAddress> clientAddresses;
private ArrayList<Integer> clientPorts;
private HashSet<String> existingClients;
在这里,我将用户端口和ip添加到阵列中。
String id = clientAddress.toString() + "," + clientPort;
if (!existingClients.contains(id)) {
existingClients.add(id);
clientPorts.add(clientPort);
clientAddresses.add(clientAddress);
}
在这里,我遍历所有数组,并将数据发送到所有客户端。
byte[] data = (id + " : " + content).getBytes();
for (int i = 0; i < clientAddresses.size(); i++) {
InetAddress cl = clientAddresses.get(i);
int cp = clientPorts.get(i);
packet = new DatagramPacket(data, data.length, cl, cp);
socket.send(packet);
}
暂无答案!
目前还没有任何答案,快来回答吧!