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

news/2024/5/18 16:09:11 标签: udp, indy, delphi, delphi udp, 广播消息

目录

一、服务器端(接收端)

二、客户端(广播端)


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

一、服务器端(接收端)

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

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,将可以很容易实现在同一个网络中进行设备搜寻,简单协议通信等,包括移动设备!


http://www.niftyadmin.cn/n/5236014.html

相关文章

求最大公约数,和最小公倍数的规则

求最大公约数,和最小公倍数的规则? 最大公约数(Greatest Common Divisor,简称GCD)是指两个或多个整数共有约数中最大的一个。例如,12和18的最大公约数是6,因为12和18同时都能被6整除。 求最大公…

网件R8500 trojan

一 将路由器刷机成改版梅林 路由器首页的Firmware:380.70_0-X7.9.1是梅林改版 380.xx 梅林原版固件 380.xx_x 梅林改版固件 必须是改版梅林才支持trojan,所以要确保是梅林改版固件 点击上传文件,选择下载好的改版固件,固件地址下载传送门…

windows 你的电脑不能投影到其他屏幕,请尝试重新安装驱动程序

注意 千万不要去下载什么驱动精灵,太垃圾不好用还一堆附带的软件。按以下步骤进行解决: 解决方法 可能是显卡驱动的问题,我的笔记本按照如下步骤重启一下驱动后解决了,步骤如下: 右键点击桌面的开始菜单,选择”设备…

【BUG】ERROR Place 1115 Unroutable Placement

项目场景: 使用Xilinx FPGA时遇到下面的这个问题 ERROR:Place:1115 - Unroutable Placement! A clock IOB / BUFIO clock component pair have been found that are not placed at a routable clock IOB / BUFIO site pair. The clock IOB component is placed at…

C语言速通笔记(1-40)

1.一个 C 语言程序有且只有一个 main 函数,是程序运行的起点。 2.每个 C 语言程序写完后,都是先编译. c 后链接. obj 最后运行.. exe 3.c和. obj 文件是无法运行的,只有…

【车载开发系列】Flash支持的安全功能

【车载开发系列】Flash支持的安全功能 这里写目录标题 【车载开发系列】Flash支持的安全功能一. FlashMemory概念二. Flash Memory特性1)包括代码闪存和数据闪存2)闪存编程方法3)支持BGO(后台地面操作)4)闪存数据安全5&#xff09…

Flutter PK jetpack compose区别和选择

Flutter诞生于Chrome团队,是一帮做Web的开发做的跨平台框架,从最开始的设计初衷,就是指向了跨平台这条路,而Compose,则是诞生于Android团队,是为了解决当前View的架构体系不能再继续适应申明式编程的范式而…

Go 程序编译过程(基于 Go1.21)

版本说明 Go 1.21 官方文档 Go 语言官方文档详细阐述了 Go 语言编译器的具体执行过程,Go1.21 版本可以看这个:https://github.com/golang/go/tree/release-branch.go1.21/src/cmd/compile 大致过程如下: 解析 (cmd/compile/internal/synt…