首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >印度TUDPServer广播

印度TUDPServer广播
EN

Stack Overflow用户
提问于 2016-11-24 10:11:51
回答 1查看 1.4K关注 0票数 0

我有三个网络适配器,两个有效的和一个'VirtualBox主机-纯网络‘。

当尝试用下面的代码发送广播(绑定正确的IP)时,广播数据会被发送到VirtualBox网络适配器上(用wireshark检查),当然也得不到答案。

代码语言:javascript
运行
复制
FIdUDPServer.Binding.IP := Settings.netInterfaces[settings.sett_net_interface].AddrIP; 
FIdUDPServer.BroadcastEnabled := True;
FIdUDPServer.Broadcast(udpDiscovery, BCport);

我试图将我的真正适配器的IP绑定到IdUDPServer (Binding.IP),但是广播是从错误的适配器发送的。

当我禁用virtualbox适配器时,我再次获得答案。这里怎么了?IDE是德尔福2010。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-24 22:39:07

如果尚未访问TIdUDPServer.Binding属性,则绑定并激活服务器,然后返回服务器绑定到的第一个绑定对象。在激活Binding.IP时更改TIdUDPServer属性没有任何影响。在激活服务器之前,必须使用所需的本地绑定填充TIdUDPServer.Bindings集合,然后在服务器激活后可以使用所需的绑定对象从集合中广播。例如:

代码语言:javascript
运行
复制
FIdUDPServer.Active := False;
FIdUDPServer.Bindings.Clear.
FIdUDPServer.Bindings.Add.IP := Settings.netInterfaces[settings.sett_net_interface].AddrIP; 
FIdUDPServer.BroadcastEnabled := True;
FIdUDPServer.Active := True;
FIdUDPServer.Broadcast(udpDiscovery, BCport);
// or:
// FIdUDPServer.Bindings[index].Broadcast(udpDiscovery, BCport);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40783520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档