客户端代码
WORD wVersionRequested;
WSADATA wsaData;
        wVersionRequested = MAKEWORD (1, 1);
int err = WSAStartup(wVersionRequested , &wsaData );
if(err  != 0){
AfxMessageBox("error");
}
if( LOBYTE (wsaData.wVersion ) != 1 || HIBYTE (wsaData.wVersion) != 1){
WSACleanup();
return;
} SOCKET sockclient = socket(AF_INET , SOCK_DGRAM , 0);        int optval=1;
setsockopt(sockclient,SOL_SOCKET,SO_BROADCAST,(char*)&optval,sizeof(optval));  //设置广播        sockaddr_in addrSrv;
addrSrv.sin_family = AF_INET;
addrSrv.sin_addr.s_addr = inet_addr("127.0.0.1");
addrSrv.sin_port = htons(6000);
        sendto(sockclient,"HELL",strlen("HELL")+1,0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));   //发送数据到服务器(成功) char recv[111] = {0};
int len = sizeof(SOCKADDR); sockaddr_in addr_in;
addr_in.sin_family = AF_INET ;
addr_in.sin_addr.s_addr = INADDR_BROADCAST;
addr_in.sin_port = htons(6000); recvfrom(sockclient , recv , 111 , 0 , (SOCKADDR*)&addr_in , &len);  //在广播套接字上接受数据(失败,接受不到数据,请问为什么)     
 
AfxMessageBox(recv);
closesocket(sockclient);
WSACleanup();
服务端程序:
         WORD wVersionRequested;
WSADATA wsaData;
        wVersionRequested = MAKEWORD (1, 1);
int err = WSAStartup(wVersionRequested , &wsaData );
if(err  != 0){
return;
}
if( LOBYTE (wsaData.wVersion ) != 1 || HIBYTE (wsaData.wVersion) != 1){
WSACleanup();
AfxMessageBox("error");
return;
} SOCKET sockClient = socket(AF_INET , SOCK_DGRAM , 0);        int optval=1;
setsockopt(sockClient,SOL_SOCKET,SO_BROADCAST,(char*)&optval,sizeof(optval));// 设置广播套接字         sockaddr_in addrSrv;
addrSrv.sin_family = AF_INET;
addrSrv.sin_addr.s_addr = inet_addr("127.0.0.1") ;   
addrSrv.sin_port = htons(6000);
    
bind(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

char recv[111] = {0};
int len = sizeof(SOCKADDR); sockaddr_in addrclient;
recvfrom(sockClient,recv,111,0,(SOCKADDR*)&addrclient,&len);    //接受数据(成功)
AfxMessageBox(recv);        sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_BROADCAST;  
addr.sin_port = htons(6000); sendto(sockClient,"HELL",strlen( "HELL")+1,0,(SOCKADDR*)&addr,sizeof(SOCKADDR));   //广播发送数据(成功,但是客户端接受不到数据,请问问什么) closesocket(sockClient);
WSACleanup();
基本思路:客户端首先发送数据到服务端,服务器接收到客户端发送消息后再广播发送给客户端,但是客户端接受不到数据
求教!