首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpWebRequest.KeepAlive vs ServicePoint.SetTcpKeepAlive

HttpWebRequest.KeepAlive vs ServicePoint.SetTcpKeepAlive
EN

Stack Overflow用户
提问于 2014-05-20 14:49:46
回答 1查看 4.9K关注 0票数 1

谁能解释一下,假设我有一个HttpWebRequest对象"request“,下面的示例代码有什么区别/含义?

代码语言:javascript
复制
request.KeepAlive = true;
request.ServicePoint.SetTcpKeepAlive(true, 1000, 5000);

在上面的示例中,我将两者都设置为True。如果我将一个设置为True,另一个设置为False,该怎么办?这是什么意思呢?

EN

回答 1

Stack Overflow用户

发布于 2015-05-08 04:18:21

这是两个不同的特性。

HTTPWebRequest.KeepAlive指的是HTTP persistent connection特性,在该特性中,套接字可以被重用于后续的HTTP请求。

ServicePoint.SetTcpKeepAlive指的是TCP keepalive功能,该功能可防止套接字在长时间不活动后关闭,并提供检测连接是否在不活动期间断开的功能。

可以安全地同时使用,或者都不使用,或者两者的任意组合。不过,我认为在HTTP连接上使用TCP keepalive是不典型的。我推测,如果存在某种类型的操作,其中服务器在事件发生之前没有义务响应,则可能会使用它。例如:就像HTTP上的长轮询。

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

https://stackoverflow.com/questions/23752783

复制
相关文章

相似问题

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