想问一下,在下面这段函数中,最后期“m_SckRecive”是不是具有了,地址复用、禁止回馈、设置该套接字为广播类型。如果要不是的话,请高手帮忙说说为什么不是,应该是什么//创建接收socket
bool CUDPServer::CreateRecvSocket(int RecvPort)
{
int ret;
bool flag;
SOCKADDR_IN addr;
m_RecvPort = RecvPort;
//创建socket
m_SckRecive = socket(AF_INET,SOCK_DGRAM,IPPROTO_IP); 
if(m_SckRecive==INVALID_SOCKET)
{
return false;
}
flag = true;
//设置允许地址复用
ret = setsockopt(m_SckRecive,SOL_SOCKET,SO_REUSEADDR,(char*)&flag,sizeof(flag));
if(ret!=0)
{
CLOSE_SOCKET(m_SckRecive);
return false;
}
/*const int routenum = 10;
ret = setsockopt(m_SckMultiCastSend,IPPROTO_IP,IP_MULTICAST_TTL,(char*)&routenum,sizeof(routenum));
if(ret!=0)
{
CLOSE_SOCKET(m_SckMultiCastSend);
return false;
}
const int loopback = 1; //禁止回馈
ret = setsockopt(m_SckMultiCastSend,IPPROTO_IP,IP_MULTICAST_LOOP,(char*)&loopback,sizeof(loopback));
if(ret!=0)
{
CLOSE_SOCKET(m_SckMultiCastSend);
return false;
}
flag=true;
//设置该套接字为广播类型,
setsockopt(m_SckMultiCastSend,SOL_SOCKET,SO_BROADCAST,(char FAR *)&flag,sizeof(flag));*/ //绑定
ZeroMemory(&addr,sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_port = htons(m_RecvPort);
//addr.sin_port = m_MultiCastPort;
ret = bind(m_SckRecive,(struct sockaddr *)&addr,sizeof(addr));
if(ret!=0)
{
CLOSE_SOCKET(m_SckRecive);
return false;
}
return true;
}