EVC 多播如何创建? 本帖最后由 VisualEleven 于 2010-12-08 15:54:05 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 VisualEleven 于 2010-12-08 15:53:24 编辑 BOOL Udp::SetMulticast(PCSTR textIP){ int error = 0; int i_val = 0; // 设置多播和广播 if ( IN_MULTICAST(ntohl(inet_addr(textIP))) ) { i_val = 1; error = setsockopt(m_Socket, IPPROTO_IP, IP_MULTICAST_LOOP, (char*)&i_val, sizeof(i_val) ); if (error == SOCKET_ERROR) { ReportError(); return FALSE; } ip_mreq multicastAddr; multicastAddr.imr_multiaddr.s_addr = inet_addr(textIP); multicastAddr.imr_interface.s_addr = htonl(INADDR_ANY); error = setsockopt(m_Socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char*)&multicastAddr, sizeof(multicastAddr)); if (error == SOCKET_ERROR) { ReportError(); return FALSE; } } //设置广播 if ( inet_addr(textIP) == INADDR_BROADCAST ) { i_val = 1; error = setsockopt( m_Socket, SOL_SOCKET, SO_BROADCAST, (char*)&i_val, sizeof(i_val) ); if (error == SOCKET_ERROR) { ReportError(); return FALSE; } } return TRUE;} 我想在一个对话框里实现一个快速启动条,对经常用的应用程序可以用鼠标拖拽到启动条上,请高手指点,50分,急! 类似MessageBox界面的制作问题----请各位对界面有经验者帮忙解答下!~ 如何把所有的控件、组件,包括框架窗体,对话框等等,全都变成平面的(默认的是3D效果)?不要第三方的东西,我知道可能是要自己重画,但 关于CListCtrl的Item的问题~~~ 怎样改变普通窗口大小? 何为Lotus及Domino 当我的分辨率 或Color quality改变时,我的程序会得到什么消息? :win98下可以操作绝对物理地址,请问大哥在 Win2000/winNT 下获取系统内存绝对物理地址并对其进行操作? 请给一点例子代码,感激加50分???? 交友热线:征集在广州用C++的朋友的QQ号,我的:12122574 为什么使用Wininet(http)下载二进制文件时,服务器会返回406错误?我已经把可接受的类型设置为*/*了? CProgressCtrl如何设置背景图片,或者将背景设为透明 Windows 字符串反转的问题
BOOL Udp::SetMulticast(PCSTR textIP)
{
int error = 0;
int i_val = 0; // 设置多播和广播
if ( IN_MULTICAST(ntohl(inet_addr(textIP))) )
{
i_val = 1;
error = setsockopt(m_Socket, IPPROTO_IP, IP_MULTICAST_LOOP, (char*)&i_val, sizeof(i_val) );
if (error == SOCKET_ERROR)
{
ReportError();
return FALSE;
}
ip_mreq multicastAddr;
multicastAddr.imr_multiaddr.s_addr = inet_addr(textIP);
multicastAddr.imr_interface.s_addr = htonl(INADDR_ANY);
error = setsockopt(m_Socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char*)&multicastAddr, sizeof(multicastAddr));
if (error == SOCKET_ERROR)
{
ReportError();
return FALSE;
}
}
//设置广播
if ( inet_addr(textIP) == INADDR_BROADCAST )
{
i_val = 1;
error = setsockopt( m_Socket, SOL_SOCKET, SO_BROADCAST, (char*)&i_val, sizeof(i_val) );
if (error == SOCKET_ERROR)
{
ReportError();
return FALSE;
}
}
return TRUE;
}