我有一个TCP服务器,其接收超时为9秒,但是,我用来从客户端接收任何数据:

while (sr.Peek() >= 0) {
    line += sr.ReadLine();
    line += Environment.NewLine;
}

但是当服务器超时时,我在sr.Peek()行上收到以下错误:

System.IO.IOException:无法从传输连接读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而 Build 连接失败 . ---> System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者 Build 的连接失败,因为连接的主机无法响应

有没有办法超时,但也等待客户端的任何潜在数据?