Given a successful Socket
connection, my Java server does this:
out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
out.write("HELLO");
out.newLine();
out.flush();
And this is what my C# client does:
TcpClient tcpClient = new TcpClient("localhost", port);
tcpClient.ReceiveTimeout = 10000;
NetworkStream networkStream = tcpClient.GetStream();
BinaryReader reader = new BinaryReader(networkStream);
reader.ReadString(); // <--- Hangs
tcpClient.Close();
It will hang on ReadString()
and time out eventually. If you change it to
reader.Read(); // <--- Returns 72
Returns 72
which I assume corresponds to the H
. So apparently the Java server is indeed sending the message - why is ReadString()
hanging?