我知道Response.IsClientConnected
但在我的场景中它有很大的滞后。代码:
// sample code for sending a dynamic file in chuncks
long bytesSent = 0;
while (continueSending)
{
if (!AskReceiverToContinue())
break;
if (!Response.IsClientConnected)
break;
// Your suggestion goes here... :)
try
{
Response.OutputStream.Write(buffer, 0, buffer.Length);
bytesSent += buffer.Length;
}
Catch
{ // To my experience, this is more reliable than Response.IsClientConnected
continueSending = false;
}
}
问题是客户端实际接收到的字节数比我的要小得多bytesSent
。似乎当客户端断开连接时,我的程序发现情况有很大的滞后(并继续增加bytesSent
)这是因为 ASP.NET 告诉我情况(客户端已断开连接)晚了。
有没有可靠的方法可以找出客户端何时断开连接(实时)?
您正在通过 HTTP 传输,不是吗?如果是的话,由于HTTP协议的无状态性,没有办法。你唯一需要帮助的是你已经在使用的超时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)