马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
鸿蒙NEXT开发实战往期必看文章:
HarmonyOS NEXT应用开发案例实践总联合(持续更新......)
HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)
一分钟相识”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)
1. UDP简介
UDP协议是传输层协议的一种,它不需要建立毗连,是不可靠、无序的,相对于TCP协议报文更简单,在特定场景下有更高的数据传输效率,在现代的网络通讯中有广泛的应用,以最新的HTTP/3为例,它是基于QUIC(Quick UDP Internet Connections)协议的,从协议名字就不难看出,这个基础协议也是UDP的,如今就扬弃对UDP的私见,深入、彻底的相识UDP,从而更好地把握鸿蒙网络编程。
2. UDP通讯的常用方法
鸿蒙封装的UDP操纵类位于模块socket中,使用如下的方式导入:
import socket from '@ohos.net.socket';
socket模块包罗了众多的UDP操纵方法,就本文而言,重点需要把握的是如下四个:
1)constructUDPSocketInstance(): UDPSocket
创建一个UDPSocket对象,在使用UDPSocket的方法以前需要创建该对象。
2)bind(address: NetAddress): Promise<void>
绑定IP地址和端口,端口可以指定或由系统随机分配,可以使用0.0.0.0表示本机IP地址;使用Promise方式作为异步方法。
3)send(options: UDPSendOptions): Promise<void>
通过UDPSocket毗连发送数据,由于UDP是无毗连的,给定IP地址和端口即可发送数据,不用考虑对方是否真的存在;使用Promise方式作为异步方法。
4)on(type: 'message', callback: Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>): void
订阅UDPSocket毗连的接收消息事故,当套接字接收到消息时触发该事故,此中message表示接收到的消息,remoteInfo是发送方信息;使用callback方式作为异步方法。
除了这些方法,为了得到系统IP地址,还使用了wifiManager模块的getIpInfo方法,该方法并不是UDP通讯必须的,就不详细先容了。
3. UDP通讯示例
为演示UDP通讯的方式,本示例实现了一个使用UDP协议发送、接收消息的功能,运行后的界面如下所示:
下面详细先容创建该应用的步骤。
步骤1:创建Empty Ability项目。
步骤2:在module.json5配置文件加上对权限的声明:
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
},
{
"name": "ohos.permission.GET_WIFI_INFO"
}
]
这里分别添加了访问互联网和访问WIFI信息的权限。
步骤3:在Index.ets文件里添加如下的代码:
步骤4:编译运行。如果通过模拟器来部署运行,需要使用长途模拟器

使用本地模拟器可能会有网络题目。
另外,使用模拟器的时候要确保打开WIFI,可以通过设置->WLAN页面开启。
步骤5:配置本地端口和对端IP地址和端口,然后单击绑定按钮绑定到本地指定的端口,再单击发送按钮发送消息。可以根据实际需要配置,如果没有对端的UDP应用,把本应用作为对端也可以,也就是相当于本身给本身发送消息,末了本身再接收,如图所示:

如许就完成了一个简单的UDP消息发送应
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |