Hallo,
ich bin gerade ein Multicast-Test zu durchführen, dafür habe ich die Classe MulticastServer.java und MulticastClient.java gebraucht.
Nach dem Start vom MulticastServer wartet er auf data vom MulticastClient.
Das Problem ist, dass das Server keine Daten bekommt wenn der Client startet und data sendet. Was mache ich falsch?
// Datei: MulticastServer.java
import java.net.*;
import java.io.*;
public class MulticastServer
{
// IP-Adresse der Gruppe
static String groupAddress = „224.5.6.7“;
// Port der Gruppe
static int port = 6789;
public static void main (String[] args)
{
try
{
// Erzeugen eines Puffers zum Empfang von Anfragen
byte[] buffer = new byte[128];
DatagramPacket packet =
new DatagramPacket (buffer, buffer.length);
InetAddress address = InetAddress.getByName (groupAddress);
// Erzeugen einer Socket
MulticastSocket socket = new MulticastSocket (port);
// Beitritt zu Multicast-Gruppe
socket.joinGroup (address);
while (true)
{
// Empfang einer Anfrage
socket.receive (packet);
// Extraktion und Ausgabe der Anfrage
String message = new String (packet.getData(),
0, packet.getLength());
System.out.println ("Nachricht empfangen: " +
message + " von " +
packet.getAddress ());
// Beantworten der Anfrage
message = „response“;
DatagramPacket response =
new DatagramPacket (message.getBytes(),
message.length(),
packet.getAddress(),
packet.getPort());
socket.send (response);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
// Datei: MulticastClient.java
import java.net.*;
import java.io.*;
public class MulticastClient
{
// IP-Adresse der Gruppe
static String groupAddress = „224.5.6.7“;
// Port der Gruppe
static int port = 6789;
public static void main (String[] args)
{
try
{
// Verpacken der Anfrage in ein Paket
InetAddress address = InetAddress.getByName (groupAddress);
byte[] message = „look up“.getBytes();
DatagramPacket packet = new DatagramPacket (message,
message.length,
address, port);
// Erzeugen einer Socket und senden der Anfrage
MulticastSocket socket = new MulticastSocket();
socket.send (packet);
// Erzeugen eines Puffers
byte[] b = new byte[128];
packet.setData (b);
packet.setLength (b.length);
// Empfang der Antwort
socket.receive (packet);
// Extrahieren der Antwort und Ausgabe der Informationen
String response = new String (packet.getData(),
0, packet.getLength());
System.out.println ("Antwort empfangen: " +
response + " von " +
packet.getAddress());
// Schliessen der Socket
socket.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Gruss.
Hicham