Folgendes Szenario:
Per DatagramSocket schicke ich ein DatagramPacket mit String-Inhalt von einem Client zum Server.
Im Client selbst, wir das Packet noch mit richtigem Inhalt ausgelesen, sobald das Packet aber am Server ankommt, bzw. vom Server ausgelesen wird, ist es unvollständig und beinhaltet immer genau 18 Zeichen.
Meine Frage ist jetzt, woran es liegen könnte, dass das Paket immer nach dem Empfang vom Server nicht vollständig ist. Unterbricht evtl. irgendetwas anderes das Lesen des Pakets, sodass immer nur ein Teil gelesen werden kann? Hoffe ihr könnt helfen.
Quellcode:
Packet wird im Client gefüllt und losgeschickt (inkl. Überprüfung des Inhalts):
(hier stimmt alles noch im Paket)
Paket wird vom Server gelesen, Inhalt in einen String gepackt und angezeigt:
(hier werden nur die ersten 18 Zeichen des kompletten - eigentlich im Paket vollständig enthaltenen - Strings ausgegeben/ausgelesen)
Weiß jemand Rat?
Per DatagramSocket schicke ich ein DatagramPacket mit String-Inhalt von einem Client zum Server.
Im Client selbst, wir das Packet noch mit richtigem Inhalt ausgelesen, sobald das Packet aber am Server ankommt, bzw. vom Server ausgelesen wird, ist es unvollständig und beinhaltet immer genau 18 Zeichen.
Meine Frage ist jetzt, woran es liegen könnte, dass das Paket immer nach dem Empfang vom Server nicht vollständig ist. Unterbricht evtl. irgendetwas anderes das Lesen des Pakets, sodass immer nur ein Teil gelesen werden kann? Hoffe ihr könnt helfen.
Quellcode:
Packet wird im Client gefüllt und losgeschickt (inkl. Überprüfung des Inhalts):
Java:
String mess = "sendMessage :: " + username + " ;; " + kv[0] + " ;; " + kv[1];
System.out.println(mess);
ba = mess.getBytes();
packet.setData( ba, 0, ba.length );
socket.send( packet );
String testoutput = new String(packet.getData(), 0, packet.getLength());
System.out.println(testoutput);
Paket wird vom Server gelesen, Inhalt in einen String gepackt und angezeigt:
Java:
socket.receive( packet );
InetSocketAddress add = (InetSocketAddress)packet.getSocketAddress();
// Text aus Paket extrahieren
String text = new String(packet.getData(), 0, packet.getLength());
System.out.println(text);
Weiß jemand Rat?