HarmonyOS 通过TCPSocket进行连接时,如何准确的判断是否与服务器已断开连接?

​使用TCPSocket的getState获取到的连接状态不准确,无法判断服务器主动断开连接的情况。

TCPSocket建立连接之后,在没有任何数据交互的情况下待机长时间,使用getState获取到的isConnected为true,并且使用send发送数据没有触发error,但是实际上服务器已断开和客户端的连接,没有给响应了。​

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

通过订阅回调事件可以获取,尝试使用error事件处理。

可参考以下链接:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-socket-V5#onerror-1

参考demo如下:

import socket from "@ohos.net.socket"; 
import { BusinessError } from '@ohos.base'; 
let tcp: socket.TCPSocket = socket.constructTCPSocketInstance(); 
tcp.on('error', (err: BusinessError) => { 
  console.log("on error, err:" + JSON.stringify(err)) 
});

​使用场景是绑定和连接时,可参考以下链接,有说明:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-socket-V5#getstate-2

已于2024-11-14 16:57:36修改
分享
微博
QQ
微信
回复
3天前
相关问题
VScode终端ssh连接不到Linux服务器问题
27811浏览 • 2回复 待解决
HarmonyOS BLE 搜索、连接断开等问题
437浏览 • 1回复 待解决
ets TCPSocket连接无法发送消息?
3793浏览 • 1回复 待解决
怎样判断当前设备是否连接了VPN?
408浏览 • 1回复 待解决
HarmonyOS如何通过API连接指定WIFI
352浏览 • 1回复 待解决
如何对网页进行连接
305浏览 • 1回复 待解决
HarmonyOS 文件上传服务器问题
241浏览 • 1回复 待解决