Ich versuche mich zur Zeit an Netzwerkprogrammierung... der nachfolgende Code-Ausschnitt stammt aus einem Client, der am Port 4723 lauscht und dort Pakete entgegennimmt, um aus seinem Inhalt einen String zu machen und diesen auszuwerten bzw. auszugeben.
Code: Alles auswählen
private void empfangen(InetAddress ia, DatagramSocket socket) throws SocketException, IOException, InterruptedException{
while ( run == 2 ) {
// Auf Anfrage warten
DatagramPacket packet = new DatagramPacket( new byte[1024], 1024 );
socket.receive( packet );
// Empfänger auslesen
byte[] data = packet.getData();
String output = new String (data);
if (output.equals("write")){
System.out.println("Du kannst jetzt schreiben.");
System.out.println("");
run = 1;
// Schleife wird beendet
}
else{
System.out.println(output);
System.out.println("");
run = 2;
}
}
Dadurch wird die Schleife nicht beendet, in der der Client Pakete empfängt.
Diese Schleife muss aber beendet werden, damit der Client in der Lage ist, einen neuen String einzulesen und an den Server zu senden.
Alles andere funktioniert. Der Client kann einen String einlesen und senden, gerät danach in die o.g. Schleife und kann auch Nachrichten vom Server empfangen und ausgeben. Er erkennt nur nicht, dass output.equals("write") wahr ist, was ich nicht verstehe.
Ich hoffe, hier Hilfe zu finden

MfG
* Piru