为什么我第一次连接服务端时是能执行OnConnect,但是把服务端给关了,再重启,客户端会自已再调用ConnectToServer()重服务端,怎么OnConnect就再也没有被触发.
CClientSocket m_ClientSocket;//CClientSocke这是自己写socket类
void CClientSocket::OnConnect(int nErrorCode) 
{
if(nErrorCode==0)
{
GetSockName(m_LocalIP,m_LocalPort);
SetConnected(TRUE);
if(m_bConnectedBox)
{
CString strIP;
UINT nPort;
GetPeerName(strIP,nPort);
CString strMsg;
strMsg.Format(_T("已连接到通讯服务程序,%s:%d"),strIP,nPort);
}
}
else
SetConnected(FALSE);
CAsyncSocket::OnConnect(nErrorCode);
}
////
void CRealWatchApp::ClostSocket()
{
//如果socket未关闭,首先关闭
try
{
if(m_ClientSocket.m_hSocket!=INVALID_SOCKET||m_ClientSocket.IsConnected())
{
//int nn=m_ClientSocket.ShutDown(2);
m_ClientSocket.Close();
m_ClientSocket.SetConnected(FALSE);
}
}
catch(...)
{
int el=0;
}}
///
BOOL CRealWatchApp::ConnectToServer()
{
ClostSocket();  //首先关闭
//连接到服务器端
BOOL bSuccess=true;
if(m_ClientSocket.m_hSocket==INVALID_SOCKET)
{
//m_ClientSocket=NULL;
bSuccess=m_ClientSocket.Create();
bFirst=false;
}
if(bSuccess)
{
if(m_nIPSelect==1)
{
int a=m_ClientSocket.Connect(m_strIP1,m_uPort);
m_nIPSelect=2;
}
else
{
int b=m_ClientSocket.Connect(m_strIP2,m_uPort);
m_nIPSelect=1;
}
}
return bSuccess;
}