I’ve set up a basic Server-Client connection (server being Java, Client being C#) and when the server send a lot of data to the client using PrintWriter, some of the data does not get read by the client when is using StreamReader
Server sends to the client:
Socket TEMP_SOCK = (Socket) RandomServer.Connections.get(1);
PrintWriter TEMP_OUT = new PrintWriter(TEMP_SOCK.getOutputStream());
TEMP_OUT.println("test");
TEMP_OUT.flush();
Client receive from server:
while(true) {
NetworkStream Stream = connection.GetStream();
StreamReader streamin = new StreamReader(Stream);
string returndata = IN.ReadLine();
print(return data);
}
thank you
You need to re-use the original
StreamReaderinstead of creating a new one in each iteration.Right now, each StreamReader will consume extra characters to fill its internal buffer, and since you never use each one again, those characters will be swallowed up.