Symbian—如何处理网络连接超时的问题?
2010-07-29 16:18
471 查看
定义如下:
CPeriodic* iTimer;
static TInt TimerBack(void *p);//CPeriodic start 的回调函数
在HTTP连接的类中
初始化如下:
iTimer = CPeriodic::NewL(CActive::EPriorityStandard);
在POST请求中加入:
iTimer->Start(20000000, 20000000, TCallBack(TimerBack, this));
在回调函数参考如下:
TInt CClientEngine::TimerBack(void *p)
{
CClientEngine* f = static_cast (p);
f->iTransaction.Close();//关掉网络连接
f->iTimer->Cancel();//关掉定时器
CGblData::GetGblData()->DeleteWaitNoteL();
CGblData::GetAppUiPtr()->SetNotWait(ETrue);
HBufC8* tempdatabuf;
TBuf8<100> itempbuf =_L8("");
itempbuf.Append(R_MOLO_CLIENT_TIMEOUT);
itempbuf.Append(_L8(""));
tempdatabuf = itempbuf.Alloc();
CGblData::GetAppUiPtr()->ClientBodyReceivedL(
(const char*) tempdatabuf->Ptr());
if (tempdatabuf)
{
delete tempdatabuf;
tempdatabuf = NULL;
}
return 1;
}
在MHFRunL中加入:
iTimer->Cancel();
因为当网络请求先返回那么我们就停止定时器
最后记得在析构函数中加入:
iTimer->Cancel();
if (iTimer)
{
delete iTimer;
iTimer = NULL;
}
相关文章推荐
- 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:01:00”
- 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源有关问题导致的。本地套接字超时是“00:04:59.9990000”
- ***套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的
- WCF 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的
- WCF 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的
- 【WCF】 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:00:56.9810000”。
- 关于如何处理ubuntu16.04无法连接网络问题
- .net WCF 套接字连接中断,可能是由于消息处理错误,或者远程宿主接受超时引起,或者是底层网络资源问题导致,本地套接字时间
- WCF 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的
- 创新谈-如何处理DataGuard环境中万一网络失败将导致的Primary库短时间内无法正常工作的问题-张乐奕
- 如何使用专用管理连接进行问题诊断和处理 【摘自SQL Server在线帮助】
- 网络连接 以及超时处理
- MySQL数据库连接超时(wait_timeout)问题的处理
- 关于Hibernate3,mysql5 数据库连接超过8小时 连接超时的问题及解决方案(部分摘自网络)
- 网络编程中如何设置连接超时
- 网络连接不上的问题处理
- 如何利用神经网络做回归问题(全连接以及一维卷积)
- 如何解决 Windows Server 2003 和 Windows XP 中丢失网络连接图标的问题
- MySQL连接问题【如何解决MySQL连接超时关闭】
- 转:IPhone之ASIFormDataRequest POST操作架构设计/ 处理网络超时问题