问题标签 [stream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
335923 浏览

c# - 如何将一个流的内容复制到另一个流?

将一个流的内容复制到另一个流的最佳方法是什么?有没有标准的实用方法?

0 投票
5 回答
5485 浏览

c# - .NET 没有可靠的异步套接字通信?

我曾经在 .NET 中写过一个 Crawler。为了提高它的可扩展性,我尝试利用 .NET 的异步 API。

System.Net.HttpWebRequest 具有异步 API BeginGetResponse/EndGetResponse。但是,这对 API 只是为了获取一个 HTTP 响应头和一个 Stream 实例,我们可以从中提取 HTTP 响应内容。所以,我的策略是使用 BeginGetResponse/EndGetResponse 异步获取响应 Stream,然后使用 BeginRead/EndRead 从响应 Stream 实例中异步获取字节。

在 Crawler 进行压力测试之前,一切似乎都很完美。在压力测试下,Crawler 内存使用率很高。我用 WinDbg+SoS 检查了内存,发现很多字节数组都被 System.Threading.OverlappedData 实例固定了。在互联网上搜索后,我从微软找到了这个 KB http://support.microsoft.com/kb/947862 。

根据 KB,异步 I/O 的数量应该有一个“上限”,但它并没有告诉一个“建议的”界限值。所以,在我看来,这个知识库没有任何帮助。这显然是一个 .NET 错误。最后,我不得不放弃从响应流中异步提取字节的想法,而只是以同步的方式进行。

.NET 库允许使用点网套接字(Socket.BeginSend / Socket.BeginReceive / NetworkStream.BeginRead / NetworkStream.BeginWrite)进行异步 IO,其异步 IO 的未完成缓冲区数量(发送或接收)必须具有上限.

网络应用程序应该对其发布的未完成异步 IO的数量有一个上限 。

编辑:添加一些问号。

有人有在 Socket 和 NetworkStream 上进行异步 I/O 的经验吗?一般来说,生产中的爬虫是同步还是异步与互联网进行I/O?

0 投票
3 回答
863 浏览

php - 使用 stream_filter_* 在 PHP 中处理大型(超过 1 Gig)文件

当我运行这个脚本时,在浏览了 35MB 的文件后最终消耗了大约 200MB 的 RAM。

在没有 stream_filter 的情况下运行它,内存占用约为 10 MB。

是什么赋予了?

0 投票
6 回答
175687 浏览

java - java - 如何在java中将String转换为InputStreamReader?

如何将String值转换为InputStreamReader

0 投票
3 回答
1443 浏览

c# - 如何在 C# 中针对流安全地创建 XPathNavigator?

给定一个 Stream 作为输入,我如何安全地创建一个针对 XML 数据源的 XPathNavigator?

XML 数据源:

  • 可能包含需要删除的无效十六进制字符。
  • 可能包含与文档声明的编码不匹配的字符。

例如,云中的某些 XML 数据源将声明编码为utf-8,但实际编码为windows-1252ISO 8859-1,这可能会导致在创建 XmlReader 时抛出无效字符异常流。

来自StreamReader.CurrentEncoding属性文档:“当前阅读器使用的当前字符编码。在第一次调用 StreamReader 的任何 Read 方法后,该值可能不同,因为在第一次调用 Read 方法之前不会进行编码自动检测。 " 这似乎表明可以在第一次读取后检查 CurrentEncoding,但是当我们需要将 XML 数据写入 Stream 时,我们是否会卡住存储此编码?

我希望找到一种最佳实践,针对 XML 数据源安全地创建 XPathNavigator/IXPathNavigable 实例,该数据源将优雅地处理编码无效字符问题(最好在 C# 中)。

0 投票
4 回答
2863 浏览

delphi - Delphi7如何从流中截取一部分

我有一个传入的soap消息,其形式是TStream(Delphi7),发送这个soap的服务器处于开发模式,并在消息中添加一个html标头以进行调试。现在我需要从它中删除 html 标头部分,然后才能将其传递给肥皂转换器。它以“pre”标签开头,以“/pre”标签结束。我认为这应该很容易,但我以前在 Delphi7 中没有做过,所以有人可以帮助我吗?

0 投票
2 回答
668 浏览

c++ - std::streams 已经可以移动了吗?

GNU gcc 4.3 部分支持即将到来的 c++0x 标准:在实现的功能中,右值引用。通过右值引用,应该可以移动不可复制的对象或从函数中返回它。

std::streams 是否已经可以通过右值引用移动,或者当前的库实现是否缺少某些东西?

0 投票
1 回答
89319 浏览

ruby - 从本地文件或 url 打开一个 IO 流

我知道有其他语言的库可以采用包含本地文件路径或 url 的字符串并将其作为可读 IO 流打开。

在红宝石中有一种简单的方法可以做到这一点吗?

0 投票
4 回答
3325 浏览

c++ - C++中的无限循环

我正在学习 C++ 并编写一些小程序。以下是一个这样的程序:

当我运行这个程序并将输入保持在相当小的绝对值时,它的行为符合预期。但是当我输入更大的输入时,例如 10000000000,程序会重复输出相同的输出。某些输入组合会导致行为不稳定。例如:

该程序吐出“10 -->”直到它被杀死。(使用这个特定的输入序列,程序的输出速度会发生不规律的变化。)我还注意到,大值的输出取决于先前的合法输入以及当前非法输入的值。

这是怎么回事?(我不关心修复程序,这很容易。我想了解它。)

0 投票
4 回答
13992 浏览

c++ - 为什么 C++ 流使用 char 而不是 unsigned char?

我一直想知道为什么 C++ 标准库使用char类型而不是类型来实例化 basic_[io]stream 及其所有变体unsigned charchar意味着(取决于它是否已签名)您可以对 get() 之类的操作进行上溢和下溢,这将导致所涉及的变量的实现定义值。另一个例子是当你想使用它的put函数将一个未格式化的字节输出到 ostream 时。

有任何想法吗?


注意:我仍然不太相信。因此,如果您知道明确的答案,您仍然可以确实发布它。