草庐IT

c# - TcpClient.GetStream().DataAvailable 返回 false,但流有更多数据

因此,阻塞的Read()似乎可以在完成接收所有发送给它的数据之前返回。反过来,我们用一个循环包装Read(),该循环由相关流中的DataAvailable值控制。问题是您可以在此while循环中接收更多数据,但没有后台处理继续让系统知道这一点。我在网上找到的大多数解决方案都不适用于我。我最终做的是作为我循环的最后一步,我在从流中读取每个block后执行一个简单的Thread.Sleep(1)。这似乎让系统有时间更新,我没有得到准确的结果,但这似乎有点老套,而且对于解决方案来说有点“间接”。以下是我正在处理的情况的列表:IIS应用程序和独立应用程序之间的单个TCP连接,两者都是用C#编写

c# - 错误 (HttpWebRequest) : Bytes to be written to the stream exceed the Content-Length bytes size specified

我似乎无法弄清楚为什么我不断收到以下错误:BytestobewrittentothestreamexceedtheContent-Lengthbytessizespecified.在以下行:writeStream.Write(bytes,0,bytes.Length);这是一个Windows窗体项目。如果有人知道这里发生了什么,我肯定会欠你一个。privatevoidPost(){HttpWebRequestrequest=null;Uriuri=newUri("xxxxx");request=(HttpWebRequest)WebRequest.Create(uri);request

c# - 从 http 地址读取 XML 文件

我需要使用c#/.net从这样的源读取xml文件:https://10.1.12.15/xmldata?item=all这基本上只是一个xml文件。StreamReader不喜欢那样。阅读该链接内容的最佳方式是什么?文件看起来像这样:--CZ325000123ProLiantDL380pGen8BBBBBBGGGGHHHJJJJ10000-000-222-22222-333333333333-... 最佳答案 您需要使用LINQtoXML处理XML文件。XDocument.LoadMethod支持从URI加载XML文档:vardoc

c# - 为什么处理 StreamReader 会使流不可读?

这个问题在这里已经有了答案:CanyoukeepaStreamReaderfromdisposingtheunderlyingstream?(9个回答)关闭7年前。我需要从头到尾读取流两次。但是下面的代码抛出一个ObjectDisposedException:Cannotaccessaclosedfile异常。stringfileToReadPath=@"";using(FileStreamfs=newFileStream(fileToReadPath,FileMode.Open)){using(StreamReaderreader=newStreamReader(fs)){strin

c# - StreamReader 和 StreamWriter 在同一个 Stream 上?

如何关闭使用相同底层流的StreamReader和StreamWriter?varstream=/*...*/;varreader=newStreamReader(stream);varwriter=newStreamWRiter(stream);我知道我可以简单地忽略关闭读取器/写入器并关闭底层流。然而,这似乎有点hack,因为它是基于这样的假设,即读者/作者没有任何东西可以处理(将来可能不会是这种情况)。我知道这已在.NET4.5中通过额外的构造函数参数得到解决,但在.NET4.5发布之前,我该如何以正确的方式解决它? 最佳答案

c# - 在 .NET 应用程序中检测重定向控制台输出中的关闭管道

.NETConsole类及其默认的TextWriter实现(可作为Console.Out隐含在例如Console.WriteLine中())当应用程序将其输出通过管道传输到另一个程序时,不会发出任何错误信号,并且另一个程序在应用程序完成之前终止或关闭管道。这意味着应用程序可能会运行超过必要的时间,将输出写入黑洞。如何检测重定向管道另一端的关闭?更详细的解释如下:这里有一对演示问题的示例程序。Produce相当慢地打印大量整数,以模拟计算效果:usingSystem;classProduce{staticvoidMain(){for(inti=0;iConsume只读取前10行输入然后退

c# - C#中缓冲区和流的区别

这个问题在这里已经有了答案:WhatisthedifferencebetweenBufferedStreamandMemoryStreamintermsofapplication?(2个答案)关闭5年前。我读到Buffer是一个字节序列。但我也读到Stream也是一个字节序列。那么Stream和Buffer有什么区别呢?

从学龄前开始解读FFMPEG代码 之 avformat_find_stream_info函数四

从学龄前开始解读FFMPEG代码之avformat_find_stream_info函数四开始学习前想说的话函数实现6-计算时间相关参数函数实现7-第五次循环函数实现8-第六次循环函数实现9-err的情况和收尾工作结尾时要说的话开始学习前想说的话这是avformat_find_stream_info函数解读文章的最后一篇,在最后这一篇解读文章中会对最后的两次大循环进行解读。最后的两次循环,是为了findstream这样一个操作做好兜底的准备,将没有做好初始化的属性最后进行一次检查和补充,完成函数的全部任务。函数实现6-计算时间相关参数在进入第五次循环之前,findstream函数还进行了一个时

c# - 在 Stream 中找到给定字节序列开始位置的最佳方法

您认为在System.Stream中查找给定字节序列开始位置(第一次出现)的最佳方法是什么:publicstaticlongFindPosition(Streamstream,byte[]byteSequence){longposition=-1;///???returnposition;}附言首选最简单但最快的解决方案。:) 最佳答案 我已经找到了这个解决方案。我用一个3.050KB的ASCII文件做了一些基准测试和38803lines.用搜索bytearray的22bytes在文件的最后一行,我得到了大约2.28的结果。秒(在慢

C# 身份验证失败,因为远程方已关闭传输流

我想指出的是,我已经为此搜索了很多,但没有找到解决方案。因此,我创建了一个循环,该循环将抛出包含链接的listBox2,每次创建一个httpGET请求以访问完整的源代码。我的代码:privatevoidbutton4_Click(objectsender,EventArgse){try{for(inti=0;i当循环命中各种url例如(http://www.memphremagog.org/fr/lexique.php?id=32)时,会触发以下错误。奇怪的是,如果我删除循环并向该站点发出httpGET请求,一切正常。Afirstchanceexceptionoftype'System