18,356
社区成员
发帖
与我相关
我的任务
分享
void MySocket::OnClose(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
::AfxMessageBox(L"OnClose");
CAsyncSocket::OnClose(nErrorCode);
}
g_pMySocket 为全局的MySocket对象已经在对话框的 OnInitDialog 中调用过 Create
// 连接到服务器或与服务器断开连接
// 如果当前正在连接则断开
void CClientDlg::OnBnClickedButtonConnection()
{
this->UpdateData(TRUE);
//::memset(this->btTemp, 0, sizeof(this->btTemp));
// 单击按钮之前正处于连接状态
if(::g_blConnection) // g_blConnection 用于记录当前是连接还是已经断开
{
// 断开与服务器的连接
//g_pMySocket->Detach(); //
g_pMySocket->Close(); // 关闭时会执行该行
//g_blConnection = FALSE; // 在OnClose中如果关闭成功才设为FALSE
//g_pMySocket->KillSocket(::g_pMySocket->m_hSocket, (CAsyncSocket* )g_pMySocket);// 调用时出错
}
else
{
// 连接到服务器
this->m_ipaddSrv.GetWindowTextW(strTemp);
g_pMySocket->Connect(strTemp, this->m_uPort);
this->SetDlgItemTextW(IDC_BUTTON_CONNECTION, L"连接...");
}
}
MySocket* g_pMySocket=NULL;
g_pMySocket=new MySocket();