首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

回调函数中socket连接解决办法

2012-04-04 
回调函数中socket连接当socket中断,开启一个定时器去重连,用的定时器是timeSetEvent。在回调函数中先closes

回调函数中socket连接
当socket中断,开启一个定时器去重连,用的定时器是timeSetEvent。在回调函数中先closesocket然后重新连接,问题是根据connect的返回值看是连接上了,但实际是没连接上。回调函数部分如下:
其中pthis的声明为:static CRemotTran *pthis;

C/C++ code
void CALLBACK CRemotTran::ReConTimerPro(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwtime){    //AfxMessageBox(_T("OnTimer"));    try    {        closesocket(pthis->m_sScoket);    }        catch (CException* e)    {        AfxMessageBox(_T("关闭socket失败"));    }        pthis->m_sScoket=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);   //socket初始化    if(pthis->m_sScoket==INVALID_SOCKET)        return;    if(connect(pthis->m_sScoket,(LPSOCKADDR)&pthis->m_adServer,sizeof(LPSOCKADDR)))        {                timeKillEvent(pthis->m_uiReConTimer);                                                    //关闭定时器                                                 pthis->m_bReConTimerFlag=false;            pthis->m_bSockConFlag=true;    }}


[解决办法]
恩,了解了

热点排行