完成端口传送文件问题
我用完成端口传送文件,一个读,一个发.
case CMD_READFILD: //打开文件
{
lp->Cmd=CMD_READOK;
ReadFile((HANDLE)lp->lClassPtr,&lp->pBuffer,MAX_SEND_SIZE,&dwTrans,&lp->Overlapped);
}
break;
case CMD_READOK: //读完之后发
{
lp->Cmd=CMD_READFILD;
lp->Overlapped.Offset+=dwTrans;
st_perOverlapped * pOverSend = new st_perOverlapped[1]; //新申请一个,用于发,
pOverSend->hSocket =lp->hSocket;
pOverSend->Cmd = CMD_SENDSUC;
ZeroMemory(&pOverSend->Overlapped,sizeof(OVERLAPPED));
buf.buf=(char *)lp->pBuffer;
buf.len=dwTrans;
WSASend(pOverSend->hSocket,&buf,1,&dwBuffReceive,0,&pOverSend->Overlapped,NULL); //发了之后,继续又去读.
ReadFile((HANDLE)lp->lClassPtr,lp->pBuffer,1,&dwBuffReceive,&lp->Overlapped);
break;
}
我如何让它发了之后,判断发完了没有,如果发完了,再继续发,让读和发并行呢.谢谢大家了.还有什么好的办法吗?