#include <winsock2.h>
#include <stdio.h>
#define MCASTADDR "234.5.6.101" //本例使用的多播组地址。
#define MCASTPORT 7000 //绑定的本地端口号。
#define BUFSIZE 5000 //接收数据缓冲大小。
int main( int argc,char ** argv)
{
WSADATA wsd;
struct sockaddr_in local; //本地
struct sockaddr_in remote; //组播源
struct sockaddr_in from;; //实际数据来源
SOCKET sock;
SOCKET sockM;
char recvbuf[BUFSIZE];
int len = sizeof(struct sockaddr_in);
int ret;
//初始化WinSock2.2
if(WSAStartup(MAKEWORD(2,2),&wsd) != 0 )
{
printf("WSAStartup() failed\n");
return -1;
}
if((sock = WSASocket(AF_INET, SOCK_DGRAM, 0, NULL, 0,
WSA_FLAG_MULTIPOINT_C_LEAF | WSA_FLAG_MULTIPOINT_D_LEAF |
WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET)
{
printf("socket failed with:%d\n",WSAGetLastError());
WSACleanup();
return -1;
}
//将sock绑定到本机某端口上。
local.sin_family = AF_INET;
local.sin_port = htons(MCASTPORT);
local.sin_ad