请问一个关于网络UDP组播的有关问题

请教一个关于网络UDP组播的问题
设计的意图是让本地IP加入一个组,从组接收UDP报文
头文件部分

#include <winsock2.h>
#include <Ws2tcpip.h>
#pragma comment(lib,"ws2_32.lib")


源文件部分

_sFd = socket(AF_INET, SOCK_DGRAM, 0);//定义UDPsocket

//一些setsockopt设置
//...

//加入组播
struct ip_mreq mltiCast;
memset(&mltiCast, 0, sizeof(mltiCast));
mltiCast.imr_multiaddr.s_addr = inet_addr("224.0.18.2");      //要加入的组
mltiCast.imr_interface.s_addr = inet_addr("192.168.18.103");  //本地指定IP

DWORD tpdw = 0;
if (SOCKET_ERROR == setsockopt(_sFd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&mltiCast, sizeof(mltiCast)))
{
    tpdw = WSAGetLastError();
    printf("add group err %d\n", tpdw);
}


为什么加入组播的setsockopt会返回SOCKET_ERROR
打印出错误代码为10022的错误

在网上查了一下 但是解释不太清楚 没怎么懂
有达人能清晰的说明一下怎么才能实现加入组播接收吗
------解决思路----------------------
引用:
搞了半天
原来是需要先bind()
请问一个关于网络UDP组播的有关问题
------解决思路----------------------
我来都来了,给点分吧请问一个关于网络UDP组播的有关问题
------解决思路----------------------
该回复于2012-11-18 23:32:23被管理员删除