马上要交货。可。。。急。。在线等,请帮忙。
我从CSocket继承了一个类,类中包括一个CMainFrame* m_pMainFrame;对象和virtual void OnReceive(int nErrorCode);virtual void OnClose(int nErrorCode);两个函数再没有别的了。
然后在CMainFrame里面这样用的:
MainFrm.h
static CClient* m_pSocket;
m_pSocket=new CClient(this);
MainFrm.cpp
CClient* CMainFrame::ConnectServer(CClient* pSocket)
{
if (!pSocket->Create())
{
return NULL;
}
if (!pSocket->Connect("IP地址", 端口号))
{
return NULL;
}
return pSocket;
}
//连接
BOOL CMainFrame::Conection()
{
if (m_pSocket->m_hSocket!=INVALID_SOCKET)
{
TRACE("\nCLOSE m_pSocket start\n");
//这个地方出错,有时候关闭正确,有时候就会现错,是不是我的用法有问题?
m_pSocket->Close();//错误
TRACE("\nCLOSE m_pSocket end\n");
}
if(ConnectServer(m_pSocket)==NULL)
{
MessageBox("连接失败!");
return FALSE;
}else
{
MessageBox("连接成功!");
return TRUE;
}
}
在别的对话框中点击按钮调用Conection()
CDialogtest::OnButton1()
{
pFrame->Conection();
}
有时候就会出错,各位大哥,这是为什么啊。是不是因为m_pSocket的连接已经断开了我再次断开它出的问题?有什么办法可以确确实实的判断m_pSocket到底关闭连接没啊?急请各位大侠帮帮忙?