Java でマルチキャスト ソケットを使用しているときに、受信メソッドに問題があります。マルチキャスト ソケットを使用してグループ チャットを行いたいホストがいくつかあります。各ホストで 2 つのスレッド (読み取りと書き込み) が開始され、両方ともグループ IP に参加するマルチキャスト ソケットを使用します。問題は、受信メソッドの実行時に、書き込みスレッドで他のホストから以前に送信されたデータグラム パケットが返されないことです。何が問題なのですか? 読み取りスレッドの run メソッドのコードを次に示します。
byte buff[]=new byte[576];
DatagramPacket DataPkt=new DatagramPacket(buff, 576);
MultiReadSocket.receive(DataPkt);
System.out.println("Datagram Packet: " + DataPkt);
ByteArrayInputStream bais = new ByteArrayInputStream(buff);
ObjectInputStream ois = new ObjectInputStream(bais);
MyPkt = (MyPacket)ois.readObject();
書き込みスレッドの run メソッドのコード:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(MyPkt);
DatagramPacket DataPkt = new DatagramPacket(baos.toByteArray(), baos.toByteArray().length,InetAddress.getByName("235.0.0.2"), 2020);
MultiWriteSocket.send(DataPkt);
さらに情報が必要な場合は、教えてください。