C# Stream.Read 超时
Posted
技术标签:
【中文标题】C# Stream.Read 超时【英文标题】:C# Stream.Read with timeout 【发布时间】:2013-06-17 10:43:54 【问题描述】:我有这个流式阅读器:
Boolean read = false;
while (wline!="exit")
while (!read || streamReader.Peek() >= 0)
read = true;
Console.Write((char)streamReader.Read());
wline = Console.ReadLine();
streamWriter.Write(wline+"\r\n");
streamWriter.Flush();
如何设置 Read() 方法的超时时间? 谢谢
【问题讨论】:
这是与 TCPClient 相关的吗? 【参考方案1】:如果这是System.IO.StreamReader
,则将其设置在BaseStream
:
streamReader.BaseStream.ReadTimeout = 2000; //milliseconds, so 2 seconds
【讨论】:
你知道什么是默认超时值吗? @SHAHS 否。查看该值的来源对我来说并不明显。我能建议的最好的方法是在上面设置一个断点并查看。【参考方案2】:您需要处理底层流。因此,如果您使用的是 TcpClient,您可以简单地设置 ReceiveTimeout:
ReceiveTimeout 属性决定了 读取方法将阻塞,直到它能够接收数据。这次是 以毫秒为单位。如果超时在读取之前到期 成功完成,TcpClient 抛出一个 IOException。没有 默认超时。
tcpClient.ReceiveTimeout = 5000;
【讨论】:
以上是关于C# Stream.Read 超时的主要内容,如果未能解决你的问题,请参考以下文章
当 Stream.Read() 存在时,StreamReader 的目的是啥?
reader.ReadToEnd 和 Stream.Read 之间的区别
使用 SocketIO 上传文件时,Flask request.stream.read() 正在停止
如果没有发送任何内容,Stream.Read不会返回任何内容
HybridAuth Facebook 登录错误:“无效范围:offline_access、publish_stream、read_friendlists”