社区
网络及通讯开发
帖子详情
如何用udp实现消息群发?
macri
2006-04-22 11:09:07
我知道内网中50台机器的IP,现在服务器要向这50台机器发送一条消息,如何用udp实现?
最好代码事例,我马上给分结贴。。。。THANKS
...全文
1028
20
打赏
收藏
如何用udp实现消息群发?
我知道内网中50台机器的IP,现在服务器要向这50台机器发送一条消息,如何用udp实现? 最好代码事例,我马上给分结贴。。。。THANKS
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pp616
2006-05-08
打赏
举报
回复
广播就好了。用不着组播。
铖邑
2006-05-08
打赏
举报
回复
楼上说的是用广播发送的吧?广播地址是192.168.*.255,是255不是0
另外,象楼主这个需求根本不需要用广播。
楼主好象不在意,发了帖子以后就没什么回音了
rookieme
2006-05-06
打赏
举报
回复
那么198网段的机子都将收到你的信息,如果有路由器则需要在socket中bind一个ttl数字,该数字在经过路由器时自动减一,直至0则不再传递,NMUDP的该黙认值为0,所以不能穿越路由器
iec
2006-05-06
打赏
举报
回复
路过.
rookieme
2006-05-06
打赏
举报
回复
如果有路由器,需bind一个参数,并对多播地址发
其实象LZ的需求,只需将发数时的IP的后面几亿改为0就行,如:198.0.0.0
rookieme
2006-05-06
打赏
举报
回复
NMUDP
rookieme
2006-05-06
打赏
举报
回复
我是说UDP控件不行
yuyulily
2006-04-26
打赏
举报
回复
学习了。。
铖邑
2006-04-23
打赏
举报
回复
多播不需要交换机的支持,但需要路由器的支持。
在一个局域网(以太网)内,多播可以无条件发送。但是如果想让多播通过路由器,就需要在路由器上配置多播路由,这个是比较复杂的,因为在互联网中使用的多播地址本身也是要申请的。在 局域网内部可以使用保留的多播地址,这个地址段有个范围,如果我没有记错的话应该是224.*.*.*-239.*.*.*,这里面还有一些规定,最好用后面的吧。这个我就记得不太清楚了,可以查资料看,多播地址是怎么规定的。
有什么问题可以继续保持联系。
macri
2006-04-23
打赏
举报
回复
谢谢楼上的兄弟,只怪我学业不精啊。。不过有人说udp不行,确实是害人哈。。
其实我就是想实现一个给所有用户发送通知的功能。以前看过一资料,说群发还要什么交换机的支持,不是是否存在这个问题。还请赐教。
铖邑
2006-04-23
打赏
举报
回复
不是在下自夸,本人从事网络编程多年,对协议与套接口编程还是比较了解的,既然回帖了,就不会瞎说。难道楼上的怀疑我的人品???
建议楼主看看有关多播方面的协议,再看UDP、多播socket编程资料。
铖邑
2006-04-23
打赏
举报
回复
回复人:rookieme(rookieme) ( 四级(中级)) 信誉:100 2006-04-23 08:57:00 得分:0
?
UDP不行
回帖也要负责任的,乱出主意是害人的。你告诉我UDP怎么不行了?群发消息(多播)不是需要用UDP吗???
铖邑
2006-04-23
打赏
举报
回复
不是UDP???要不要查一下SOCK_DGRAM是啥东东???
你说的是用UDP控件???
rookieme
2006-04-23
打赏
举报
回复
UDP不支持的,可用indy
rookieme
2006-04-23
打赏
举报
回复
UDP不行
铖邑
2006-04-23
打赏
举报
回复
192.168.*.* 是C类保留地址,ABC三类地址都有保留地址,用于普通IP寻址的。
D类地址:224.*.*.*-239.*.*.*,是专门留给多播使用的,也有保留地址。
macri
2006-04-23
打赏
举报
回复
大多数局域网内的IP都好像是这样的 192.168.*.* ,没有在你说那个范围内啊?
macri
2006-04-22
打赏
举报
回复
不明白,楼上的兄弟好像不是用的udp吧,我把问题再简化一下,就是向内网的所有客户端上线的的用户发
铖邑
2006-04-22
打赏
举报
回复
将socket加入239.255.193.250多播组,就可以接收目的IP地址为239.255.193.250的数据,发送数据则是发送至239.255.193.250地址。
不知楼主明白了没?
铖邑
2006-04-22
打赏
举报
回复
int s = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
if(s < 0)return;
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_port = htons(APort);
if(bind(s, (sockaddr *)&addr, sizeof(addr)) < 0)
{
closesocket(s);
return;
}
ip_mreq mr;
mr.imr_interface.s_addr = INADDR_ANY;
mr.imr_multiaddr.s_addr = inet_addr("239.255.193.250"); // 加入多播組
setsockopt(FSocket, IPPROTO_IP, IP_ADD_MEMBERSHIP, (const char *)&mr, sizeof(ip_mreq));
java基于
UDP
实现
图片
群发
功能
3. 服务器遍历保存的`SocketAddress`集合,将图片数据通过`DatagramPacket`转发到每个客户端的对应地址,从而
实现
群发
。 在代码
实现
上,客户端会使用一个`DatagramSocket`实例来发送和接收数据报。`DatagramUtil`...
UDP
协议
实现
局域网
群发
功能
5. **接收数据**:为了
实现
群发
,其他局域网内的设备也需要监听多播地址。它们同样创建一个
UDP
套接字,并通过调用`bind()`函数绑定到多播地址和端口,然后使用`recvfrom()`函数接收数据。 6. **处理数据**:收到...
C语言用
UDP
实现
局域网聊天程序源码
C语言用
UDP
实现
局域网聊天程序源码,能够
实现
用户的注册,登陆,
群发
和私聊的功能。
udp
多线程
实现
多客户端并发,并采用链表
实现
服务器
群发
消息
udp
多线程
实现
多客户端并发,并采用链表
实现
服务器
群发
消息
。
udp
多线程
实现
多客户端并发,并采用链表
实现
服务器
群发
消息
linux c multithread concurrency linklist
udp
多线程
实现
多客户端并发,并采用链表
实现
服务器
群发
消息
本文将深入探讨如何使用
UDP
(用户数据报协议)和多线程技术在Linux环境下
实现
一个能并发处理多个客户端请求的服务器,并利用链表来高效地
实现
服务器向所有客户端
群发
消息
。 首先,
UDP
是一种无连接的传输层协议,它...
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章