WSARecvFrom blocking
WSARecvFrom blocking
本文关键字:blocking WSARecvFrom 更新时间:2023-10-16
由于某种原因,当我调用WSARecvFrom函数时,直到收到一些东西才返回。
_socket = WSASocket(AF_INET, SOCK_DGRAM, IPPROTO_UDP, NULL, NULL, WS_OVERLAPPED);
...
sockaddr_in addr = ...
if(bind(_socket, (const sockaddr*)&addr, sizeof(addr)) != EXIT_SUCCESS) { ... }
...
HANDLE _handle = CreateIoCompletionPort((HANDLE)_socket, _ioHandle, NULL, NULL);
...
_recvOverlap->OVERLAP.hEvent = WSACreateEvent();
DWORD sz = 0, flag = 0;
return WSARecvFrom(_socket, _recvBuf, 1, &sz, &flag, (sockaddr*)_recvAddr, &_recvAddrSz, (LPWSAOVERLAPPED)_recvOverlap, NULL);
将WS_OVERLAPPED
(值为0)改为WSA_FLAG_OVERLAPPED
(值为1)。您没有正确创建重叠套接字,因此_recvOverlap
被WSARecvFrom()
忽略。
相关文章:
- WinSock Non-Blocking I/O
- C BOOST ASIO串行端口同步read_some blocking无限期阻止
- 如何将blocking-waitUntil()方法写入到使用std::atomics的池中
- ZeroMq recv not blocking
- MS VC++ OpenSSL SSL_read() blocking
- Non blocking getch()
- ZMQ: socket_send/recv blocking
- WSARecvFrom目标ip地址
- WSARecvFrom blocking
- std::condition_variable spurious blocking