谁能解释一下,假设我有一个HttpWebRequest对象"request“,下面的示例代码有什么区别/含义?
request.KeepAlive = true;
request.ServicePoint.SetTcpKeepAlive(true, 1000, 5000);在上面的示例中,我将两者都设置为True。如果我将一个设置为True,另一个设置为False,该怎么办?这是什么意思呢?
发布于 2015-05-08 04:18:21
这是两个不同的特性。
HTTPWebRequest.KeepAlive指的是HTTP persistent connection特性,在该特性中,套接字可以被重用于后续的HTTP请求。
ServicePoint.SetTcpKeepAlive指的是TCP keepalive功能,该功能可防止套接字在长时间不活动后关闭,并提供检测连接是否在不活动期间断开的功能。
可以安全地同时使用,或者都不使用,或者两者的任意组合。不过,我认为在HTTP连接上使用TCP keepalive是不典型的。我推测,如果存在某种类型的操作,其中服务器在事件发生之前没有义务响应,则可能会使用它。例如:就像HTTP上的长轮询。
https://stackoverflow.com/questions/23752783
复制相似问题