私は、Javaでクラスを作成して、マルチキャストグループへの接続、参加、送信、および受信のプロセスを簡素化しています。私の質問を説明する前に、下のサンプルを見てください。ちょうどあなたが私がやっていることのアイデアを持っています。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);
//Code halts here until data is recieved
msConn.recieve(pack);
注:それがすべてで例外がキャッチして、私の実際のコードに似ている、import文、等...それは単にそれがJavaのマルチキャスティング能力を活用する方法で私のクラスの基本的な流れを示していないことに注意してください。 メソッドでは、マルチキャストクラスがデータパケットを受信するまで、コードは停止します。もしそうなら、あなたは方法の例を提供してください可能性があり、
int i = 0;
while(true) {
System.out.print(i);
i++;
}
は、これらのプロセスを並行して行うことができます、と私はまた、同時に、このコードを実行中に、Javaは常に新しいデータをリッスン持ってできるようにするには、希望これを行う?そうでない場合、別の回避策がありますか?
私がやっているカウントループは何ですか?これらの2つのコードブロックはどのように関連していますか?それ以外の場合はもちろん、並列に実行することもできます。スレッドを2つ起動し、それぞれに1つのコードブロックを実行します。 – ziesemer
これらは関連していません。それは、並行して実行する方法を知りたいと思っていた2つの分離された無関係のプロセスの単なる例です。これらのサンプルは私の実際のアプリケーションにはありません。 :) 2つのスレッドを同時に作成して実行する方法の例を教えてください。 –
下記の@ Macの答えをご覧ください。 – ziesemer