/*pData要发送的数据,
 *nDataSize数据大小
 */BOOL           g_bContinue = TRUE;void UDPProc(void *pData, int nDataSize)
{
SOCKET hSock = socket(AF_INET, SOCK_DGRAM, 0);

sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
bind(hSock, (sockaddr*)&addr, sizeof(addr));

BOOL b = 1;
setsockopt(hSock, SOL_SOCKET, SO_BROADCAST, (char*)&b, sizeof(b)); for(; g_bContinue; )
{
addr.sin_family = AF_INET;
addr.sin_port = htons((u_short)你的广播端口);
addr.sin_addr.s_addr = htonl(INADDR_BROADCAST);
sendto(hSock, (char*)pData, nDataSize, 0, (sockaddr*)&addr, sizeof(addr)
}
closesocket(hSock);
}

解决方案 »

  1.   

    谢谢,不过我把他转成Delphi,好像不起作用。而且,我在vc6 里面编译有8个link错误。
    为什么?
      

  2.   

    我也想知道
    好像UDP要给出IP才能发送
      

  3.   

    不会你连下面这条语句都没改就去编译吧?
    addr.sin_port = htons((u_short)你的广播端口);在这个函数前你至少要加上:
    #include <afxsock.h>而且在调用这个函数之前,你必须调用WSAStartup初始化,退出时调用WSACleanup,这些都是写socket程序必需的工作。
      

  4.   

    至于用VC那是因为我没看上面的“论坛”,而且我也不太懂Dephi,不敢班门弄斧,请多包涵。