HarmonyOS 鸿蒙Next TCPSocketConnection在TCPSocketServer的connect事件回调函数之外如何获取和访问?

发布于 1周前 作者 phonegap100 来自 鸿蒙OS

HarmonyOS 鸿蒙Next TCPSocketConnection在TCPSocketServer的connect事件回调函数之外如何获取和访问?

通过TCPSocketServer建立服务端,客户端连接上之后,双方都要在绘图区通过鼠标选点,再相互发送过去,服务端的TCPSocketConnection对象好像只能在TCPSocketServer的on(‘connect’)回调函数中获得和访问,请问如何在其外比如绘图区鼠标点击回调函数中获得并进行访问?谢谢。

5 回复

找个变量把服务端的TCPSocketConnection存起来比如叫tcpClient1,然后在你那个绘图区鼠标点击回调函数中可以调用tcpClient1的send方法。

通过TCPSocketServer的off(‘connect’)可以取消connect事件订阅,但此时服务器的TCPSocketServer仍然监听中,客户端也可以connect成功,请问如何关闭服务端listen呢?另外我发现,客户端的socker连接close可以自动触发服务端连接close,但反过来却不行,就是这样吗?

取消connect事件订阅只是不触发connect事件而已,客户端还是可以连接的;如果要取消监听,需要关闭TCPSocketServer,但是很奇怪,TCPSocketServer没有close方法,不知道为什么这么设计。 至于客户端和服务端套接字的关闭问题,应该都可以关闭的,在TCP的四次挥手中,任何一方都可以发起,理论上一方的close都会触发对方的close。

楼主问题解决了吗

在HarmonyOS中,TCPSocketConnection 对象通常是在 TCPSocketServerconnect 事件回调函数中创建的,并作为回调函数的参数提供。若需在 connect 事件之外访问该连接,你需要将 TCPSocketConnection 对象的引用保存到类成员变量或全局变量中。

确保你的设计能够安全地管理这些连接的生命周期,避免内存泄漏或未定义行为。你可以通过实现一个连接管理器类或使用现有的状态管理框架来集中管理这些连接。

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部