2017-05-25 4 views
-1

Ich versuche, eine Nachricht von einem Computer zu senden und es von einem anderen mit Java-Socket zu lesen. Das Problem besteht darin, dass die vom Server empfangene Nachricht nicht verschlüsselt ist und durch zwei Fragezeichen innerhalb eines Diamanten dargestellt wird.Server empfangen unverschlüsselte Zeichen mit Java-Socket

Zum Lesen und Schreiben habe ich folgende Objekte verwenden:

PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"), true); 
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"))); 

Und die Methoden:

out.println("OK"); 
in.readLine(); 
+0

Sie müssen auch etwas anderes senden. Möglicherweise über die zugrunde liegenden Socket-Streams und nicht über diese Reader und Writer. – EJP

+0

Ich bin mir ziemlich sicher, das ist die erste Nachricht, die ich sende – sworwitz

+0

Ich lese gerade eine Nachricht, wenn es in Ordnung ist, sende ich ein OK sonst sende ich einen Fehler – sworwitz

Antwort

0

Verwenden Datainputstream und Dataoutputstream die Fassung zu lesen/schreiben. Diese haben readUTF() und writeUTF() Methoden, die Strings korrekt senden.

+0

Es gibt keinen Grund, warum der angezeigte Code nicht genauso gut auf Strings funktioniert. – EJP

Verwandte Themen