鸿蒙开发往期必看:
一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)
“一杯冰美式的时间” 了解鸿蒙HarmonyOS Next应用开发路径!
简介
Socket 连接主要是通过 Socket 进行数据传输,支持 TCP/UDP/Multicast/TLS 协议。
基本概念
- Socket:套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。
- TCP:传输控制协议(Transmission Control Protocol)。是一种面向连接的、可靠的、基于字节流的传输层通信协议。
- UDP:用户数据报协议(User Datagram Protocol)。是一个简单的面向消息的传输层,不需要连接。
- Multicast:多播,基于UDP的一种通信模式,用于实现组内所有设备之间广播形式的通信。
- LocalSocket:本地套接字,IPC(Inter-Process Communication)进程间通信的一种,实现设备内进程之间相互通信,无需网络。
- TLS:安全传输层协议(Transport Layer Security)。用于在两个通信应用程序之间提供保密性和数据完整性。
场景介绍
应用通过 Socket 进行数据传输,支持 TCP/UDP/Multicast/TLS 协议。主要场景有:
- 应用通过 TCP/UDP Socket进行数据传输
- 应用通过 TCP Socket Server 进行数据传输
- 应用通过 Multicast Socket 进行数据传输
- 应用通过 Local Socket进行数据传输
- 应用通过 Local Socket Server 进行数据传输
- 应用通过 TLS Socket 进行加密数据传输
- 应用通过 TLS Socket Server 进行加密数据传输
接口说明
完整的 API 说明以及实例代码请参考:Socket 连接。
Socket 连接主要由 socket 模块提供。具体接口说明如下表。
接口名 | 描述 |
---|---|
constructUDPSocketInstance() | 创建一个 UDPSocket 对象。 |
constructTCPSocketInstance() | 创建一个 TCPSocket 对象。 |
constructTCPSocketServerInstance() | 创建一个 TCPSocketServer 对象。 |
constructMulticastSocketInstance() | 创建一个 MulticastSocket 对象。 |
constructLocalSocketInstance() | 创建一个 LocalSocket 对象。 |
constructLocalSocketServerInstance() | 创建一个 LocalSocketServer 对象。 |
listen() | 绑定、监听并启动服务,接收客户端的连接请求。(仅 TCP/LocalSocket 支持)。 |
bind() | 绑定 IP 地址和端口,或是绑定本地套接字路径。 |
send() | 发送数据。 |
close() | 关闭连接。 |
getState() | 获取 Socket 状态。 |
connect() | 连接到指定的 IP 地址和端口,或是连接到本地套接字(仅 TCP/LocalSocket 支持)。 |
getRemoteAddress() | 获取对端 Socket 地址(仅 TCP 支持,需要先调用 connect 方法)。 |
setExtraOptions() | 设置 Socket 连接的其他属性。 |
getExtraOptions() | 获取 Socket 连接的其他属性(仅 LocalSocket 支持)。 |
addMembership() | 加入到指定的多播组 IP 中 (仅 Multicast 支持)。 |
dropMembership() | 从指定的多播组 IP 中退出 (仅 Multicast 支持)。 |
setMulticastTTL() | 设置数据传输跳数 TTL (仅 Multicast 支持)。 |
getMulticastTTL() | 获取数据传输跳数 TTL (仅 Multicast 支持)。 |
setLoopbackMode() | 设置回环模式,允许主机在本地循环接收自己发送的多播数据包 (仅 Multicast 支持)。 |
getLoopbackMode() | 获取回环模式开启或关闭的状态 (仅 Multicast 支持)。 |
on(type: 'message') | 订阅 Socket 连接的接收消息事件。 |
off(type: 'message') | 取消订阅 Socket 连接的接收消息事件。 |
on(type: 'close') | 订阅 Socket 连接的关闭事件。 |
off(type: 'close') | 取消订阅 Socket 连接的关闭事件。 |
on(type: 'error') | 订阅 Socket 连接的 Error 事件。 |
off(type: 'error') | 取消订阅 Socket 连接的 Error 事件。 |
on(type: 'listening') | 订阅 UDPSocket 连接的数据包消息事件(仅 UDP 支持)。 |
off(type: 'listening') | 取消订阅 UDPSocket 连接的数据包消息事件(仅 UDP 支持)。 |
on(type: 'connect') | 订阅 Socket 的连接事件(仅 TCP/LocalSocket 支持)。 |
off(type: 'connect') | 取消订阅 Socket 的连接事件(仅 TCP/LocalSocket 支持)。 |
TLS Socket 连接主要由