Socket
Verbindung erfolgreich gegeben, mein Java Server tut dies:Warum hängt BinaryReader an ReadString(), aber nicht an Read()?
out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
out.write("HELLO");
out.newLine();
out.flush();
Und das ist, was mein C# Client tut:
TcpClient tcpClient = new TcpClient("localhost", port);
tcpClient.ReceiveTimeout = 10000;
NetworkStream networkStream = tcpClient.GetStream();
BinaryReader reader = new BinaryReader(networkStream);
reader.ReadString(); // <--- Hangs
tcpClient.Close();
Es auf ReadString()
und Auszeit schließlich hängen. Wenn Sie es
reader.Read(); // <--- Returns 72
Returns ändern 72
was ich davon ausgehen, entspricht dem H
. Offensichtlich sendet der Java-Server tatsächlich die Nachricht - warum hängt ReadString()
?
siehe http://stackoverflow.com/a/8613300/3343533 –
@MitatKoyuncu - Das funktioniert nur, wenn die Java-Seite den Stream nach dem Schreiben '' HALLO \ n "' schließt. (Denk darüber nach.) –