使用CAsyncSocket,Handle m_hSocket什么时候分配?
是不是在create 完,然后连接成功后分配?
我下面代码中用RemoteSocket->m_hSocket == INVALID_SOCKET来判断,
第二次进入OnTimer函数时候,我发现RemoteSocket->m_hSocket != INVALID_SOCKET,
为啥?此时,连接未成功void CSienSetsuzoku::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if (RemoteSocket->m_hSocket == INVALID_SOCKET)
{
RemoteSocket->Create(0,SOCK_STREAM,FD_CONNECT);
RemoteSocket->Connect("172.28.121.28",30000);
iCount++;
if (iCount >=3 ||RemoteSocket->m_bConnected)
{
KillTimer(1);
if (iCount >=3)
AfxMessageBox("Connect error!");
return;
}
}
else
{
AfxMessageBox("Connect ok!");
} CDialog::OnTimer(nIDEvent);
}
是不是在create 完,然后连接成功后分配?
我下面代码中用RemoteSocket->m_hSocket == INVALID_SOCKET来判断,
第二次进入OnTimer函数时候,我发现RemoteSocket->m_hSocket != INVALID_SOCKET,
为啥?此时,连接未成功void CSienSetsuzoku::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if (RemoteSocket->m_hSocket == INVALID_SOCKET)
{
RemoteSocket->Create(0,SOCK_STREAM,FD_CONNECT);
RemoteSocket->Connect("172.28.121.28",30000);
iCount++;
if (iCount >=3 ||RemoteSocket->m_bConnected)
{
KillTimer(1);
if (iCount >=3)
AfxMessageBox("Connect error!");
return;
}
}
else
{
AfxMessageBox("Connect ok!");
} CDialog::OnTimer(nIDEvent);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货