是有关我的网络大作业的,马上就要交了,可是有个问题一直解决不了使用sendto()函数时返回SOCKET_ERROR, 错误代码是10004,大意是sendto()是一个阻塞函数,但被WSACancelBlockingCall()中止了,但我在程序中没有自己调用过这个函数,请教一下这是怎么回事? 是系统自动调用的吗? 如何解决这个问题,让sendto()发送数据?相关代码如下:
SOCKET sockRaw = INVALID_SOCKET;
........
ErrorCode = WSAStartup(0x0101, &wsaData);
sockRaw = socket(AF_INET , SOCK_RAW , IPPROTO_IP);
.......
ErrorCode = setsockopt(sockRaw, IPPROTO_IP, IP_HDRINCL, (char *)&flag, sizeof(flag));.....
ErrorCode = sendto(sockRaw, SendBuf, datasize, 0, (struct sockaddr*) &sin, sizeof(sin));

sprintf(ErrorInfo, "\nSend Error!\nErrorCode:%d\n", WSAGetLastError());
    if (ErrorCode == SOCKET_ERROR)        
      AfxMessageBox(ErrorInfo);然后就是在这里出现了10004错误,请知道怎么回事的朋友帮个忙,谢谢!也试过换ws2_32.lib了,好像也没有用