gpt4 book ai didi

delphi - 如何在Delphi中发送广播消息

转载 作者:行者123 更新时间:2023-12-03 18:17:11 26 4
gpt4 key购买 nike

我想在我的局域网中发送广播 UDP 消息,应用程序是客户端/服务器。

我希望更新用户界面,这样任何一台计算机都可以发送一条消息来更新其他计算机。我可以使用 UDPServer indy,如何使用?谢谢

最佳答案

创建两个应用程序,一个代表发送者,另一个代表接收者。

发件人

在表单上放置一个 TIdUDPClient 和一个 TButton 组件。在按钮的 OnClick 处理程序上写入:

procedure TfrmUDPClient.BroadcastClick(Sender: TObject);
begin
UDPClient.Broadcast('Test', 8090);
end;

接收者

在您的表单上放置一个 TIdUDPServer,为其定义相同的端口 (8090) 并将其添加到 OnUDPRead 处理程序:

procedure TfrmUDPServer.UDPServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
var
DataStringStream: TStringStream;
Msg: String;
begin
DataStringStream := TStringStream.Create('');
try
DataStringStream.CopyFrom(AData, AData.Size);
Msg := DataStringStream.DataString;
finally
DataStringStream.Free;
end;
ShowMessage(Msg);
end;

或者,在更高版本的 Indy 中:

procedure TfrmUDPServer.UDPServerUDPRead(AThread: TIdUDPListenerThread;
const AData: TIdBytes; ABinding: TIdSocketHandle);
var
Msg: String;
begin
try
{if you actually sent a string encoded in utf-8}
Msg := TEncoding.UTF8.GetString(AData);
except
end;

ShowMessage(Msg);
end;

要进行测试,请运行这两个应用程序并单击按钮。要测试两个或多个“监听器”,您必须使用另一台机器。也就是说,您不能在同一个 IP 上运行多个监听器。

关于delphi - 如何在Delphi中发送广播消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3480729/

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