首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用异步套接字客户端的原始HTTP解析

使用异步套接字客户端的原始HTTP解析
EN

Stack Overflow用户
提问于 2011-05-03 19:39:26
回答 1查看 2.2K关注 0票数 2

我发现另一个问题要求提供相同类型的功能,但是这个问题已经有两年多了,所以我想知道从那以后是否有人看到过任何东西。

我基本上已经使用标准的异步http/套接字客户端套接字编写了自己的.NET。我维护1024个套接字池,我有128个“服务”线程使用套接字池以每秒371页的速度从互联网下载网页(今天刚刚在一台亚马逊的EC2服务器上进行了测试)。我还开发了另一个异步HTTP客户机,它使用HttpWebRequest异步下载网页,但速度要慢得多:使用相同的设置: 1024个池HttpWebRequest和128个“服务”线程,平均每秒大约50页(也在亚马逊的EC2上进行了测试)。

当然,提供HTTP协议支持将占用更多的处理能力和内存。我希望通过亚马逊的超大EC2服务器,我不会受到处理能力/内存的限制,而只会受到网络带宽的限制(到目前为止,情况就是如此)。

我使用的机器的一个例子是Amazon的高CPU特大型实例:

  • 7 GB内存
  • 20个EC2计算单元(8个虚拟核,每个核心2.5个EC2计算单元)
  • 1690 GB实例存储
  • 64位平台
  • I/O性能:高
  • API名称: c1.xlarge

我可以自己编写符合HTTP协议的HTTP处理,但是如果有一个现成的、快速而健壮的解决方案,它将为我节省大量的工作、痛苦和痛苦。

我至少需要以下功能:

  • 构建一个HTTP /GET(可能还有POST)请求
  • 从二进制流解析HTTP响应
  • 支持cookie
  • LGP许可证(LGPL)

有人知道这样的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-03 20:08:44

我不知道HttpWebRequest如何在内部处理套接字。打开/关闭套接字可能会对性能造成很大影响。WebClient使用的是“保持生存”,并且可能会更好地工作。

编辑:我做了一些谷歌搜索,我不会接受这作为一个答案。WebClient似乎是HttpWebRequest/Response:http://www.codeproject.com/Articles/156610/WP7-WebClient-vs-HttpWebRequest.aspx?msg=3775084的包装器

更新

既然你已经开始使用套接字了,我会坚持下去的。请随意从我的webserver项目中获取内容:http://webserver.codeplex.com

我的解析器:

http://webserver.codeplex.com/SourceControl/changeset/view/56552#671689

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5874731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档