urn 1;
}
inetAddr.sin_family=AF_INET;
inetAddr.sin_addr.s_addr= inet_addr(dlg->m_strServerIp);
inetAddr.sin_port=htons(SERVER_PORT);
dlg->m_nTimer = dlg->SetTimer(1, 5000, NULL); //设置超时时间为4秒
dlg->m_isConnectServer = FALSE; //超时标示
//连接服务器
while (connect(dlg->m_dcSocketClient, (struct sockaddr *)&inetAddr, sizeof (inetAddr)) == SOCKET_ERROR)
{
if(dlg->m_dcSocketClient != INVALID_SOCKET)
closesocket (dlg->m_dcSocketClient);
connectPromptDlg.ShowWindow(FALSE);
char strErrorPrompt[30];
memset(strErrorPrompt,0,sizeof(strErrorPrompt));
sprintf(strErrorPrompt,"登陆失败:不能连接%s上的NetMsg服务器",dlg->m_strServerIp);
AfxMessageBox(strErrorPrompt);
//dlg->RestartLogin();
return 1;
}
dlg->m_isConnectServer = TRUE;
connectPromptDlg.ShowWindow(FALSE);
char buff[MAX_BUFF_SIZE];
//发送用户名和密码响应
memset(buff,0,sizeof(buff));
sprintf(buff,"USER %d\t\n",dlg->m_nId);
if(send(dlg->m_dcSocketClient, buff,sizeof(buff),0) == SOCKET_ERROR)
{
closesocket (dlg->m_dcSocketClient);
AfxMessageBox("与服务器连接中断请重新登陆");
dlg->RestartLogin();
return 1;
}
memset(buff,0,sizeof(buff));
Sleep(1000);//让服务器有反应的时间接受消息
sprintf(buff,"PASS %s\t\n",dlg->m_strPwd);
if(send(dlg->m_dcSocketClient, buff,sizeof(buff),0) == SOCKET_ERROR)
{
closesocket (dlg->m_dcSocketClient);
connectPromptDlg.ShowWindow(FALSE);
AfxMessageBox("与服务器连接中断请重新登陆");
dlg->RestartLogin();
return 1;
}
//接受用户名和密码确认的响应
memset(buff,0,sizeof(buff));
if(recv(dlg->m_dcSocketClient,buff,sizeof(buff),0) != SOCKET_ERROR)
{
char buffcode[10];
memset(buffcode,0,
上一篇:
NetMsgClient.cpp
下一篇:
小学英语作文:讨厌的蟑螂(双语)