如何使两个udp客户端相互通信?

jgwigjjp  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(308)

我要做的是让第二组的客户互相交流。因此,如果两个客户端连接起来,它们将只能相互通信,如果第三个客户端连接起来,它将无法与其他两个客户端通信,但它将创建另一组2个客户端,以此类推。。。现在,如果一个客户端发送一条消息,它会将它发送给所有客户端,但我不知道如何让它们以2人一组的方式进行通信。
我正在使用ArrayList存储所有ip和端口:

  1. private ArrayList<InetAddress> clientAddresses;
  2. private ArrayList<Integer> clientPorts;
  3. private HashSet<String> existingClients;

在这里,我将用户端口和ip添加到阵列中。

  1. String id = clientAddress.toString() + "," + clientPort;
  2. if (!existingClients.contains(id)) {
  3. existingClients.add(id);
  4. clientPorts.add(clientPort);
  5. clientAddresses.add(clientAddress);
  6. }

在这里,我遍历所有数组,并将数据发送到所有客户端。

  1. byte[] data = (id + " : " + content).getBytes();
  2. for (int i = 0; i < clientAddresses.size(); i++) {
  3. InetAddress cl = clientAddresses.get(i);
  4. int cp = clientPorts.get(i);
  5. packet = new DatagramPacket(data, data.length, cl, cp);
  6. socket.send(packet);
  7. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题