轮询服务器以请求有关 server.Qt 的信息

polling to server to request information about server.Qt

系统概述: Ubuntu

上的客户端

SDK/Language : QT/C++

限制: 无法访问服务器代码。

问题:
我需要定期从客户端轮询服务器,并期望服务器用响应消息进行响应。预期的消息是很长的字符串。

描述:
我已经实现了与非 qt 服务器建立连接的 Qt 客户端。该软件在客户端和服务器上都是单线程的,工作方式为 expected.It 意味着用户要求客户端向服务器发送一些请求命令,然后服务器响应。现在,我需要定期轮询服务器以询问其状态信息。 我正在寻找有关如何实现它的建议。[注意:我不是在寻找源代码,而只是寻找提示和要使用的工具或库]

我想的选项很少

1) 在代码中使用 for 循环与 QTimer 一起发送 status_request 到服务器和服务器响应

*****DisAdv:*****
i) 如果用户和新循环同时发送查询会发生什么?

ii) 有没有可能for循环会吃光所有资源?

2) 使用不同的线程进行轮询?你们怎么看?根据当前需求,您认为引入新线程是个好主意吗?

3)还有更好更可行的方案吗?

Use for loop in code with QTimer

为什么在 for 循环中需要 QTimer? 使用 QTimer::singleShot.

在程序启动时向服务器发送请求并在服务器响应后每次执行QTimer::singleShot()。这比每 N 毫秒发送一次请求要好。

不要忘记网络错误。