向同一台计算机上的多个客户端发送多播消息

2024-01-03

我正在尝试编写一个服务器/服务,它每秒左右在局域网上广播一条消息,有点像服务发现。

该消息需要由以下人员接收 多个客户端程序可能是 在同一台机器上或不同的机器上 机器。但可能不止 每台机器上运行一个程序 同一时间。

我正在使用 delphi 7 和 indy 9.0.18

我卡住的地方是我是否应该使用 UDP(TIdUDPClient/Server) 或 IP MultiCast (TIdIPMCastClient/Server) 或者如果它甚至可能......

我已经设法让它与每台机器一个客户端的 IP 多播一起工作,但即使在多次尝试不同的绑定..最大/最小端口等之后,我似乎找不到解决方案。


我想你正在寻找SO_REUSEADDR http://msdn.microsoft.com/en-us/library/ms740621%28VS.85%29.aspx套接字选项。在套接字上设置该选项允许多个套接字侦听同一端口。对于多播,Windows 保证消息将传递到所有套接字(否则消息只会随机地传递到一个套接字)。

您通常通过调用setsockopt 来完成此操作,但我不是Delphi 开发人员,因此我不确定您的API 是什么样的。这question https://stackoverflow.com/questions/2143531/problem-recieving-udp-packets-send-to-127-0-0-1-when-using-so-reuseaddr似乎展示了有人在 Delphi 中做类似事情的例子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向同一台计算机上的多个客户端发送多播消息 的相关文章

随机推荐