Sendto是发送UDP包,lpszHostAddress是对方的IP,基于UDP的通讯不用建立连接。
从你的代码中你是基于TCP连接的,应该用Send方法.

解决方案 »

  1.   

    sendto函数一般用于UDP中,按你的说法,你是使用TCP的,一般使用send函数,如果对于一个面向连接的SOCKET,sendto函数的最后两个函数被忽略。因此,在你的情况下lpszHostAddress应该是没什么用的。广播一条消息需要使用UDP来发送,用TCP是不能广播发送的,因为他是面向连接的。使用UDP来发送,使用sendto,将倒数第二个参数设为广播地址就可以了
      

  2.   

    若我想连续侦听2000端口的消息,并将得到的消息广播出去,以下代码可行吗
    CharSend为服务器Socket,类为CSocket
    CharSend.create(2000)
    while(1)
    {
    CharSend.Listen();
    CharSend.Accept(Server);
    Server.ReceiveFrom(strText,2000,strAddr,intPort);
    CstrText=strText;
    m_thisDlg->SendMessage(WM_ADDNEWMSG);//WM_ADDNEWMSG为自定义消息
    int intLen;
    intLen=strlen(strText);
             Server.SendTo(strText,intLen,2000,"广播地址");
    Server.Close();
    }