- 论坛徽章:
- 0
|
本帖最后由 ohyeahbbs 于 2012-08-18 20:08 编辑
- m_socketRaw = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0, WSA_FLAG_OVERLAPPED);
- if (m_socketRaw == INVALID_SOCKET)
- return false;
- //设置发送时限.
- int nTimeout = 500;
- nResult = setsockopt(m_socketRaw, SOL_SOCKET, SO_SNDTIMEO, (char*)&nTimeout, sizeof(nTimeout));
- if (nResult == SOCKET_ERROR)
- return false;
- addrDsc.sin_family = AF_INET;
- addrDsc.sin_addr.S_un.S_addr = inet_addr(pDscAddr);
- addrDsc.sin_port = htonl(9100);
- nRet = sendto(m_socketRaw, szUdpData, strlen(szUdpData), 0, (sockaddr*)&addrDsc, sizeof(addrDsc));
- if (nRet == SOCKET_ERROR)
- {
- int nRet = WSAGetLastError();
- ....
- ....
- }
复制代码 我这样写的话,发现每次都是成功发出的。。。。sendto是不是只负责把数据发给底层驱动而不管是否成功发出的? |
|