场景描述
Socket进行数据传输的能力,支持TLSSocket能力。
场景一 :用户场景需要实现网上银行叫号及其他需要建立即时通信传输数据时,可通过TCP/TLSSocket方式加密传输数据。
场景二 :数据发送过程中 当发送方每次写入数据 < 套接字(Socket)缓冲区大小;接收方读取套接字(Socket)缓冲区数据不够及时,可能存在粘包/黏包情况,需要做对应的接收处理。
方案描述
场景一
用户场景需要实现网上银行叫号及其他需要建立即时通信传输数据时,可通过tcp/tlsSocket方式加密传输数据。
方案
调用网络模块socket中TLSSocket能力建立通信连接,有关能力可参考文档:@ohos.socket.TLSSocket。
主要步骤可参考如下:
- 引入socket能力,创建一个TLSSocket连接。
- connect连接绑定服务器 IP 和端口号,bind绑定本地网络ip地址。
- 双向认证上传客户端 CA 证书及数字证书;单向认证上传客户端 CA 证书。
- 订阅TLSSocket相关消息事件。
- 发送数据。
- TLSSocket连接使用完毕后,主动关闭。
核心代码GitCode - 全球开发者的开源社区,开源代码托管平台
//获取本机ip地址信息
function getLocalIp(): string {
const ipInfo = wifiManager.getIpInfo()
console.log(tag + 'ipInfo : ' + JSON.stringify(ipInfo));
const localIp = int2ip(ipInfo.ipAddress)
console.log(tag + 'localHost : ' + localIp);
return localIp;
}
//从wifi获取地址格式转换
function int2ip(n: number): string {
return `${(n & 0xFF000000) >>> 24}.${(n & 0x00FF0000) >>> 16}.${(n & 0x0000FF00) >>> 8}.${(n & 0xFF)}`
}
cl