18,356
社区成员
发帖
与我相关
我的任务
分享
CreateBroadcastSocket()
{
if (m_udpSockfd != INVALID_SOCKET)
{
TRACE("av matrix log : CreateBroadcastSocket() socet is live\n");
CloseSocket();
}
m_udpSockfd = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
if (m_udpSockfd == INVALID_SOCKET)
{
WSACleanup();//清理库
TRACE("av matrix log : CreateBroadcastSocket() create socket err\n");
return FALSE;
}
m_serverAddr.sin_family = AF_INET;
m_serverAddr.sin_port = htons(UDP_PORT);
m_serverAddr.sin_addr.s_addr = INADDR_BROADCAST;
bool bOpt = true;
setsockopt(m_udpSockfd, SOL_SOCKET, SO_BROADCAST, (char*)&bOpt, sizeof(bOpt));
SOCKADDR_IN localAddr;
localAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
localAddr.sin_family = AF_INET;
localAddr.sin_port = htons(UDP_PORT);
if(bind(m_udpSockfd,(SOCKADDR*)&localAddr,sizeof(SOCKADDR))<0)
{
TRACE("av matrix log : CreateBroadcastSocket() bind err\n");
return FALSE;
}
int mode = 1; // noblocking
ioctlsocket(m_udpSockfd, FIONBIO, (ULONG*)&mode);//非阻塞
return TRUE;
}