gpt4 book ai didi

delphi - 如何使用Indy10 TIdUDPClient接收广播包?

转载 作者:行者123 更新时间:2023-12-03 15:50:33 25 4
gpt4 key购买 nike

我正在连接到一个发送 UDP 数据包的系统,既作为响应(发送到特定 IP 地址)又作为广播(根据 WireShark,目标为 255.255.255.255)

我可以正确接收“直接”数据包,但我不知道如何获取广播数据包。我假设我需要第二个具有不同绑定(bind)的 TIdUDPClient,但我无法让它工作。

TIdUDPClient *reader(new TIdUDPClient(NULL));
TIdUDPClient *broadcastReader(new TIdUDPClient(NULL));

reader->Port = 2000;
reader->Host = "192.168.0.1";
reader->Connect();

broadcastReader->Port = 2000;
// broadcastReader->Host = "0.0.0.0"; // This doesn't work, but is here as an example
broadcastReader->BroadcastEnabled = true;
broadcastReader->Connect();

然后,我有其他几乎相同的线程调用 reader/broadcastReader->ReceiveBuffer()reader 工作正常,但 broadcastReader->receiveBuffer() 永远不会返回...

对 C++ 代码和 Delphi 标记表示歉意;-)

最佳答案

TIdUDPClient 不是为接收广播而设计的。请改用 TIdUDPServer

关于delphi - 如何使用Indy10 TIdUDPClient接收广播包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com