使用 HttpWebRequest 时可以同时打开多少个并发连接?
我正在使用异步 HttpWebRequest BeginGetResponse 调用;文档说不关闭 回调中的流可能会导致连接耗尽。
在“用完”之前我可以拥有多少个连接?我正在使用.NET 3.5。
另外,CLR 中是否有套接字连接池。如果是这样,这在哪里记录?
I am using asynchronous HttpWebRequest BeginGetResponse calls; the docs say that not closing
the stream in the callback may result in running out of connections.
How many connections can I have before "running out"? I am using .NET 3.5.
Also, is there a socket connection pool in the CLR. If so, where is this documented?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
多少?取决于很多事情;套接字与所有其他异步 I/O 机制共享 I/O 线程池。
一个简短但无用的答案是“很多”。除非您正在创建某种类型的服务器,否则您不太可能用完。
没有这样的套接字连接池,但有一个异步 I/O 线程池,正如您可能从上面了解到的那样。您可能会发现有指导意义的 此博客文章来自 Eric Eilebrecht,而以下文章是关于 接下来会发生什么。
How many? Depends on a lot of things; sockets share the I/O thread pool with all the other asynch I/O mechanisms.
A short if unhelpful answer is "lots". Unless you are creating a server of some sort you are highly unlikely to run out.
There isn't a socket connection pool as such, but there is an asynch I/O thread pool as you may have gleaned from the above. You may find instructive this blog post from Eric Eilebrecht, whereas a following post is about what happens next.
您可能没有意识到您的路由器将在其中发挥重要作用。 (当然还有内存、互联网连接速度等)了解理论最大值是多少会很有趣......根据您的操作系统,您可能需要进行一些调整以允许 >许多连接。
What you may not realise is that your router will play a big part in this. (And of course memory, internet connection speed etc.) It would be interesting to know what the theoretical maximum would be... Depending on your OS, you may need to do some tweaks to allow many connections.