【Delphi】IOS 15 UDP 广播消息(局域网)

本文详细记录了在iOS 15.0.2环境下使用Delphi 11.2试用版和Indy库开发UDP应用时,关于Bonjour和权限管理的实践。重点介绍了不使用Bonjour时的发送与接收过程,以及如何处理首次运行的权限请求问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境:

              FMX  

              Delphi 11.2 试用版

              IOS 15.0.2(iPhone 13 Pro Max)

              Android 10 手机(主要用来测试)  

              局域网(wifi环境)

在 IOS 中使用UDP,如果使用苹果的Bonjour (也就是 mDNS) 就要在苹果开发者后台申请权限。我们如果不使用 Bonjour,而直接使用Delphi 中 Indy 组件,就不需要申请权限,也能够发送和接收。特此记录下我的开发过程,以帮助有需要的朋友。

UDP 使用 Indy 的控件 TIdUDPServer 和 TIdUDPClient。

测试程序分为两大部分,一部分是 UDPServer,用来接收UDP消息,一部分是UDPClient,用来广播或者定向发送消息。

程序界面如下:

按下:【打开 UDPServer】就会打开UDP服务,默认端口号:8192。正常情况下,打开UDP服务都会成功,而且通过其他手机或者电脑给打开UDP服务的手机发送消息,或者广播消息,IOS手机是可以成功收到消息的,系统没有任何权限方面信息提示。

首次运行按下【发送】或者【广播】按键时,系统提示权限请求,要求用户确认。

 如果选择 不允许 ,那么以后这个程序再也无法发送UDP消息(但不影响接收),如果选择 ,那么后续程序就可以 发送 或者 广播 UDP消息了。

特别说明:

  1. IOS 手机接收其他设备的定向发送UDP消息时,能正确的收到一条信息(IPv4),如果其他设备使用的是广播消息,则IOS手机会收到两条UDP消息,一条是IPv4的,一条是IPv6的。
  2. 如果在某种情况下(目前未找到原因),手机并没有弹出授权框,此时只能卸载程序,重新安装,或者在程序界面上放置一个 WebBrowser 控件,随便访问下一个网址,系统就一定会弹出授权框。
  3. 通过网络授权的程序,会出现在【设置】中,同时可以看到(如果授权未通过,则可能在【设置】中都看不到程序):

由于IOS需要上架,所以这里提供程序源代码和Android编译好的程序下载:

1. Android APK 程序

2. 源程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海纳老吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值