Qt 网络协议实现,如QNAM,请求处理延迟

Qt 网络协议实现,如QNAM,请求处理延迟,qt,qt4,Qt,Qt4,我需要实现通过tcp工作的网络协议,该协议基本上可以通过下一种方式工作: 有推送的请求和读取的应答(只有一方可以发起请求)。 我确实希望以类似QNetworkAccessManager的方式实现它:当发送“requestst”时,QNAM返回一个指向reply的指针,一旦请求被服务,就会有一个信号,结果可以从“reply”对象使用。 我确实希望在没有多线程的情况下实现它 主要问题是: 如果插座未连接,我有3个选项: 1) 返回一个错误(将空指针计返回到reply对象类似于返回错误) 2) 从“s

我需要实现通过tcp工作的网络协议,该协议基本上可以通过下一种方式工作: 有推送的请求和读取的应答(只有一方可以发起请求)。 我确实希望以类似QNetworkAccessManager的方式实现它:当发送“requestst”时,QNAM返回一个指向reply的指针,一旦请求被服务,就会有一个信号,结果可以从“reply”对象使用。 我确实希望在没有多线程的情况下实现它

主要问题是:

如果插座未连接,我有3个选项: 1) 返回一个错误(将空指针计返回到reply对象类似于返回错误) 2) 从“sendRequest”内部发出“finish”(这是最邪恶的方法) 3) 从“sendRequest”返回“reply”,然后发出请求失败的信号。(最想要的)

我真的很喜欢第三个选项,但我现在看到的唯一方法是使用计时器和1毫秒的一次呼叫-这看起来基本上是错误的路径来实现这样的事情, 如何延迟执行插槽(通过向请求传递一些参数,如coockie)? 如果有一种方法可以发送延迟的请求(比如将请求推送到队列,从带有“reply”对象的调用返回,然后通过网络发送实际请求),这将是一件好事。 所有这些看起来像是在处理事件,但我不确定如何最好地处理这个问题。 实施此类协议的最佳实践是什么? 有什么建议吗