【Delphi】中使用Indy进行UDP广播通信

目录

一、服务器端(接收端)

二、客户端(广播端)


Delphi中进行UDP广播通信函数代码:

一、服务器端(接收端)

在主界面上返放置一个TIdUDPServer控件,设置好该控件的监听端口,例如:8192。  然后书写OnUDPRead事件函数。 

【Delphi】中使用Indy进行UDP广播通信_第1张图片

【Delphi】中使用Indy进行UDP广播通信_第2张图片

procedure TForm_APP_BOX.IdUDPServerUDPRead(AThread: TIdUDPListenerThread;
  const AData: TIdBytes; ABinding: TIdSocketHandle);
var
  RequestStr : string;
  
begin
  //1. 处理接收到的数据
  RequestStr := TEncoding.UTF8.GetString(TBytes(AData));
  //2. 显示接收的数据
  ShowMessage(RequestStr );
  
end;

二、客户端(广播端)

广播端函数:

procedure Broadcast_Message(msg : string);
var
  UDPClient: TIdUDPClient;
  B   : TBytes;
  
begin
  //构造广播消息
  UDPClient := TIdUDPClient.Create(nil);
  try
    UDPClient.BroadcastEnabled := True;
    B := TEncoding.UTF8.GetBytes(msg );
    UDPClient.Broadcast(TidBytes(B),8080);  //端口号
  finally
    UDPClient.Free;
  end;
end;

以上函数并未进行数据合法性判断,另外如果要发送大数据,可以调整BufferSize属性,默认是8192字节。

用好UDP,将可以很容易实现在同一个网络中进行设备搜寻,简单协议通信等,包括移动设备!

你可能感兴趣的:(Delphi,udp,indy,delphi,delphi,udp,广播消息)