我在一个工作者线程中收取UDP数据,却收不到,为什么呢?

wuxfBrave 2001-06-14 10:58:00
while (TRUE)
{
DWORD dwWaitResult = WaitForSingleObject(m_hEventKillThread, 5);

if (dwWaitResult == WAIT_OBJECT_0)
break;

{
static WSABUF stWSABuf;
stWSABuf.buf = (char *)m_lpMPEGRecvWritePtr;
stWSABuf.len = 32768;

static WSAOVERLAPPED o;
o.hEvent = WSACreateEvent();

static DWORD dwRet = 0;
static int iLen = sizeof(m_stSrcAddr);
static DWORD dwFlag = 0;

int nRet = WSARecvFrom(m_hSocket, &stWSABuf, 1, &dwRet, &dwFlag,
(struct sockaddr *)&m_stSrcAddr, &iLen, &o, NULL);

if (nRet != SOCKET_ERROR)
m_lpMPEGRecvWritePtr += dwRet;
else if (WSAGetLastError() == WSA_IO_PENDING)
{
HANDLE hEvent[1] = {o.hEvent};
if (WSAWaitForMultipleEvents(1, hEvent, FALSE, 7, FALSE) == WSA_WAIT_EVENT_0)
{
m_lpMPEGRecvWritePtr += stWSABuf.len;
dwRet = stWSABuf.len;
}
}

if (dwRet > 32768)
SetEvent(m_hEventAdjust);

if (dwRet > 0)
{
m_strInfo.Format("受到数据%d, 读指针%u, 写指针%u", dwRet, m_lpMPEGRecvReadPtr, m_lpMPEGRecvWritePtr);
PostMessage(WM_NS2000DUMPINFO);
}

WSACloseEvent(o.hEvent);
...全文
110 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧