鸿蒙HarmonyOS编程开发实战:TCP客户端通讯示例

 1. TCP简介

TCP协议是传输层最重要的协议,提供了可靠、有序的数据传输,是多个广泛使用的表示层协议的运行基础,相对于UDP来说,TCP需要经过三次握手后才能建立连接,建立连接后才能进行数据传输,所以效率差了一些,但是它的发送-确认机制决定了传输是可靠的,再加上滑动窗口机制的设计,也可以极大的提高传输效率。

2. TCP通讯的常用方法

鸿蒙封装的TCP操作类位于模块socket中,使用如下的方式导入:

import socket from '@ohos.net.socket';

        socket模块包括了众多的TCP操作方法,就本文而言,重点需要掌握的是如下五个:

1)constructTCPSocketInstance(): TCPSocket

创建一个TCPSocket对象,在使用TCPSocket的方法以前需要创建该对象。

2)bind(address: NetAddress): Promise<void>

绑定IP地址和端口,端口可以指定或由系统随机分配,可以使用0.0.0.0表示本机IP地址;使用Promise方式作为异步方法。

3)connect(options: TCPConnectOptions): Promise<void>

连接到指定的IP地址和端口,参数options包含了连接的地址address和连接超时时间timeout,其中address是必选的,timeout是可选的,使用promise方法作为异步方法。

4)send(options: TCPSendOptions): Promise<void>

通过TCPSocket连接发送数据,参数options包括要发送的数据data和字符编码encoding,其中data是必选的,encoding是可选的,默认使为utf-8编码,使用Promise方式作为异步方法。

5)on(type: 'message', callback: Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>): void

订阅TCPSocket连接的接收消息事件,当套接字接收到消息时触发该事件,其中message表示接收到的消息,remoteInfo是发送方信息;使用callback方式作为异步方法。

3. TCP客户端通讯示例

为演示TCP通讯的方式,本示例实现了一个使用TCP协议发送、接收消息的功能,运行后的初始界面如下所示:

cke_84598.jpeg

本示例的实现思路是这样的,首先把套接字绑定到本地的给定端口上,然后再连接到指定的服务端,最后发送消息给服务端,因为TCP是面向连接的协议,所以,本示例默认情况下连接和发送按钮都是不可用的,在绑定成功后才可以使用连接按钮,在成功连接带服务端后才可以使用发送按钮。

下面详细介绍创建该应用的步骤。

步骤1:创建Empty Ability项目。

步骤2:在module.json5配置文件加上对权限的声明:

"requestPermissions": [

      {

        "name": "ohos.permission.INTERNET"

      },

      {

        "name": "ohos.permission.GET_WIFI_INFO"

      }

    ]

这里分别添加了访问互联网和访问WIFI信息的权限。

步骤3:在Index.ets文件里添加如下的代码:

import socket from '@ohos.net.socket';
import wifiManager from '@ohos.wifiManager';
import systemDateTime from '@ohos.systemDateTime';
import util from '@ohos.util';

//执行TCP通讯的对象
let tcpSocket = socket.constructTCPSocketInstance();

//说明:本地的IP地址不是必须知道的,绑定时绑定到IP&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值