-1

我已经建立了一个基本的服务器-客户端连接(服务器是 Java,客户端是 C#),当服务器使用 PrintWriter 向客户端发送大量数据时,客户端在使用 StreamReader 时不会读取一些数据

服务器发送给客户端:

Socket TEMP_SOCK = (Socket) RandomServer.Connections.get(1);
PrintWriter TEMP_OUT = new PrintWriter(TEMP_SOCK.getOutputStream());
TEMP_OUT.println("test");
TEMP_OUT.flush();

客户端从服务器接收:

while(true) {
    NetworkStream Stream = connection.GetStream();
    StreamReader streamin = new StreamReader(Stream);
    string returndata = IN.ReadLine();
    print(return data);
}

谢谢你

4

1 回答 1

0

您需要重新使用原始StreamReader版本,而不是在每次迭代中创建一个新版本。

现在,每个 StreamReader 将消耗额外的字符来填充其内部缓冲区,并且由于您不再使用每个字符,这些字符将被吞噬。

于 2012-09-09T20:37:12.560 回答