按照UDP数据包结构构造以后,怎么发送?
是不是初始化socket时,用原始套接字?哪位大哥给出点代码看看.谢谢

解决方案 »

  1.   

    CSockAddr  saClient; //目标地址 saClient.sin_family = AF_INET; 
    saClient.sin_addr.s_addr = inet_addr(targetIP);
    saClient.sin_port = htons(targetPort);
    if(m_hSocket == NULL)
    {
    throw new CRySocketException("SendDatagram: m_hSocket==NULL");
    }
    if(nSecs>0)
    {
    FD_SET fd = {1, m_hSocket};
    TIMEVAL tv = {nSecs, 0};
    if(select(0, NULL, &fd, NULL, &tv) == 0) 
    {
    throw new CRySocketException("Send timeout");
    }
    }
    int nBytesSent = sendto(m_hSocket, pch, nSize, 0, psa, sizeof(SOCKADDR));
    if(nBytesSent == SOCKET_ERROR) 
    {
    throw new CRySocketException("SendDatagram");
    }
    return nBytesSent;