【问题标题】:StreamReader stop program on readLineStreamReader 在 readLine 上停止程序
【发布时间】:2021-06-08 16:54:26
【问题描述】:

我正在尝试连接到服务器并通过 StreamReader 读取数据。 ReadLine 方法在服务器完成发送数据后停止程序执行并开始等待客户端的响应。

例如:

StreamWriter writer = new StreamWriter(sslStream);
StreamReader reader = new StreamReader(sslStream);
string response;
writer.WriteLine("HI!");
while((response = reader.ReadLine()) != null){
    Console.WriteLine(response);
}

Output:
S: somedata1
S: somedata2
S: *no data*
(Program does nothing, no exit codes or thg else)

在那之后,什么都没有发生,调试器不会再进一步​​。谁能告诉我是什么问题?

【问题讨论】:

    标签: c# streamreader


    【解决方案1】:

    替换

    while((response = reader.ReadLine()) != null){
        Console.WriteLine(response);
    }
    

    while(!reader.EndOfStream)
    {
        string line = reader.ReadLine();
        Console.WriteLine(line);
    }
    

    将 StreamReader 和 StreamWriter 包装在 using 块中也是一个好习惯,如下所示:

    using (StreamReader reader = new StreamReader(sslStream)) {
      // ... your code
    }
    

    using 块完成后,它将自动处理流。对所有实现 IDisposable 的类执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      相关资源
      最近更新 更多