irpas技术客

【Delphi】IOS 15 UDP 广播消息(局域网)_sensor_WU_ios udp 发送广播

网络 936

开发环境:

? ? ? ? ? ? ? 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消息了。

特别说明:

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

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

1. Android APK 程序

2. 源程序


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #iOS #udp #发送广播 #介绍 #FMX # #IOS使用Indy