CAsyncSocket类夫人OnAccept函数内new一个同步类,传给Accept()函数可以吗?
- C/C++ code
#include<afxsocket.h>//使用通信,要此头文件//继承与CAsyncSocket类void CServer::OnAccept(int nErrorCode)//接受消息{ CSocket* pSocket = new CSocket;//是同步CSocket类? Accept(*pSocket); CHAR szBuff[100]={0}; pSocket->Receive(szBuff,100); AfxMessageBox(szBuff); CAsyncSocket::OnAccept(nErrorCode);}
[解决办法]
CSocket* pSocket = new CSocket;//是同步CSocket类?
你应该把pSocket保存在一个变量数组里,类似CObjectArray类(记不清楚了),这样你就可以随时用已建立的连接进行发送接收.你应该派生一个CSocket类,然后这样做:
void CServer::OnAccept(int nErrorCode)//接受消息
{
CSocket* pSocket = new CostumCSocket;//是同步CSocket类?
Accept(*pSocket);
CHAR szBuff[100]={0};
pSocket-> Receive(szBuff,100);
AfxMessageBox(szBuff);
CAsyncSocket::OnAccept(nErrorCode);
}
Class CostumCSocket:CSocket
{
加上自己的函数及派生CSockeet自己类函数
};