マルチキャストグループへの接続、参加、送信、およびデータの受信のプロセスを簡素化するために、Java でクラスを作成しています。この時点で、receive()
Java のMulticastSocket
クラスのメソッドに問題があります。この方法を使用すると、データが受信されるまでプログラム全体が停止します。
特定の期間、たとえば 5 秒間だけリッスンできる方法があるかどうかを知りたいですか?
これは、私がやっていることの非常に基本的なコード サンプルです。例外のキャッチ、インポートステートメントなどを除いて、実際のコードとはまったく似ていないことに注意してください... Javaのマルチキャスト機能をどのように活用するかについて、クラスの基本的なフローを示しているだけです。
//Connect to the multicast host, and join the group
MulticastSocket msConn = new MulticastSocket(5540);
InetAddress netAddr = InetAddress.getByName("239.255.255.255");
msConn.joinGroup(netAddr);
//Preapre a datagram packet in which to place recieved data
byte buf[] = new byte[1024];
DatagramPacket pack = new DatagramPacket(buf, buf.length);
//PROBLEM: Code halts here until data is recieved
//Accoding the the Java Docs it says that
//"This method blocks until a datagram is received."
msConn.recieve(pack);
お時間をいただきありがとうございます。