我在MFC下继承了CAsyncSocket类,进行通讯,但为什么我连续发送了两条信息,只能收到一条阿 。
服务器端主要代码:
//accept侦听
{
m_hsock=new CClientSock(this);if (m_pSock->Accept(*m_hsock))
m_hsock->AsyncSelect(FD_READ);
else
delete m_hsock;}
void CClientSock::OnReceive(int nErrorCode) //接收
{
// TODO: Add your specialized code here and/or call the base class
char recbuff[255];
memset(recbuff,'\0',255);
Receive(recbuff,255);
if(!strcmp(recbuff,"begin"))
{
AsyncSelect(FD_WRITE);}
else if(!strcmp(recbuff,"end"))
{
Close();
delete this;
}
CAsyncSocket::OnReceive(nErrorCode);
}void CClientSock::OnSend(int nErrorCode) //发送
{
// TODO: Add your specialized code here and/or call the base classint len=strlen(m_pDoc->buff);
Send(m_pDoc->buff,len,0);
AsyncSelect(FD_READ);
CAsyncSocket::OnSend(nErrorCode);
}
客户端:
iRet=send(m_Socket,"begin",6,0);
char buff[2048];
memset(buff,'\0',2048);
iRet=recv(m_Socket,buff,2048,0);
AfxMessageBox(buff);
Ret=send(m_Socket,"end",4,0);
就是当我第二次发送“end”的时候,服务器接收不到,不过 begin 可以接收到的阿?
不解~~~~~~问~~