我正在使用客户端-服务器实现的 Qt 财富服务器示例。在此示例中,当有新连接时,服务器会发送随机财富,然后关闭连接。但是对于我的程序,我希望服务器在客户端连接后继续与客户端通信。我怎样才能做到这一点?
问问题
1354 次
3 回答
1
好吧,这里有两种方法:
- 你没有关闭连接。当客户端连接到服务器时,连接会一直保持到客户端或服务器关闭为止。这样客户端和服务器都可以随时发起请求。您将需要实现一些 ping 机制,其中客户端和服务器将定期发送小请求,只是为了通知对方它们仍然“活着”。当这些停止传入时,连接将关闭。客户端必须随时为此做好准备,并在意外关闭时重新建立连接。
- 使用 REST 架构实现这一点:http ://en.wikipedia.org/wiki/Restful 。这与浏览器用于获取 WWW 站点的模型相同。每次客户端想要从服务器获得某些东西时,它都会实例化一个新连接,发送请求,接收响应并关闭连接。自然,如果需要一直重新建立连接,它可能会影响性能,因此客户端应该保持连接处于活动状态,直到他们决定不再需要它们或保持活动时间到期。这实际上是在 Internet 浏览器中实现的。请记住,此架构阻止您将请求从服务器直接发送到客户端。如果客户端需要实时刷新信息,则需要在短时间内不断向服务器请求。
于 2012-12-26T12:45:41.757 回答
0
只需不要断开客户端并存储返回的客户端套接字QTcpServer::nextPendingConnection()
以供以后使用。
于 2012-12-26T12:39:39.567 回答
0
在Gitorious或Github (以及许多其他网站)中有很多项目,可以为您提供示例,但不完全是您正在寻找的,稍微研究和记录这些项目,您可以看到其他开发人员如何制作您的自己研究自己的专业。
我真的想到了一个有趣的项目,它完全满足了他们的想法QtWebsocket,但当然必须始终考虑如何根据您的需要应用它。
于 2012-12-26T16:18:10.207 回答