if(我的队列不空才执行下面语句)
SOCKET s;
struct sockaddr_in remote;
char data[5000];
memset(data,0,sizeof(data));
WSADATA wsd;
if (WSAStartup(MAKEWORD(2,2), &wsd) != 0)
  {
      CString temp;
      temp.Format("初始化单播SOCKET失败: %d\n", GetLastError());
      AfxMessageBox(temp);
      return ;
   }//s = WSASocket(AF_INET, SOCK_RAW, IPPROTO_UDP, NULL, 0,0);
s = socket(AF_INET,SOCK_RAW,IPPROTO_UDP);
if (s == INVALID_SOCKET)
   {  
CString temp;
temp.Format("WSASocket() failed: %d\n", WSAGetLastError());
AfxMessageBox(temp);
return ;
    }
BOOL bOpt = TRUE;
int ret = setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char *)&bOpt, sizeof(bOpt));
if (ret == SOCKET_ERROR)
{

CString temp;
temp.Format("setsockopt(IP_HDRINCL) failed: %d\n", WSAGetLastError());
AfxMessageBox(temp);
return ;
}
iTotalSize = SendQueue.front().data_length+3;memcpy(data,&SendQueue.front().m_buf,SendQueue.front().data_length);remote.sin_family = AF_INET;
remote.sin_port = htons(SINGLERCVPORT);
remote.sin_addr.s_addr = inet_addr("192.157.7.67");
ret = sendto(s, data, iTotalSize, 0, (SOCKADDR *)&remote, sizeof(remote));为何我发送UDP数据总是失败!偶尔返回值ret正确,可是用抓包抓不到数据包???
请大家帮忙看看!
以上函数是在一个定时器里面触发的!