完成端口 UDP的问题
完成端口完成UDP的问题,我只是刚接触这一块。之前根据TCP的那个完成端口写了一个UDP的,相关的地址应该是对的,只是断点时,对数据进行接收的时候出现了问题。由于HEAPALLOC操作,内存一直增大,但是没有进入到完成端口绑定后的进程。TCP在绑定端口前需要ACCEPT,但是UDP不需要啊,这一块有写错的吗?或者谁有完成端口比较简单的例子呢,可以发一个吗?
//将端口与目前的完成端口绑定在一起。
CreateIoCompletionPort((HANDLE)IOCPSocket, CompletionPort, (DWORD)sClient, 0);
// Launch an asynchronous operation for new arrived connection
lpPerIOData = (LPPER_IO_OPERATION_DATA)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(PER_IO_OPERATION_DATA));
lpPerIOData->Buffer.len = MAX_PACKBUFFER_SIZE;
lpPerIOData->Buffer.buf = lpPerIOData->szMessage;
lpPerIOData->OperationType = RECV_POSTED;
int x=WSARecvFrom(IOCPSocket,&lpPerIOData->Buffer,1,&lpPerIOData->NumberOfBytesRecvd,&lpPerIOData->Flags,&client,&fromlength,&lpPerIOData->overlap,NULL);