获取用于与C++应用程序通信的网页
Getting a webpage to communicate with a C++ application
我想要实现的是让网页向C++应用程序发送消息,但这需要从C++到web服务器以及从web服务器到客户端的某种形式的连接。
我想到的一种方法是创建一个存储消息的MySQL数据库,C++应用程序使用libCURL通过php脚本向web服务器询问任何新消息。它必须每隔一秒钟左右对其进行一次民意调查,这有点浪费。此外,每当你想从网页发送消息时,你都必须将表单提交回网络服务器,这会很慢。
我也在研究HTML5网络套接字,认为可能在客户端和C++应用程序之间创建TCP连接,但我不认为它们是这样工作的。websocket是为了通过服务器在两个HTML5应用程序之间路由消息而设计的,还是理论上可以使用HTML5应用软件直接与服务器对话(可能运行php脚本,或发送正常的TCP数据包)?
任何关于我如何实现这一目标的建议都将受到欢迎。
谢谢。
如果您想从您的网站进行远程过程调用,我建议您看看SOAP。SOAP与PHP完美配合,使用gSOAP,您可以轻松地将服务器接口嵌入到C++应用程序中,或者在必要时反之亦然。
如果你的应用程序中只有非常简单的消息,那么你的数据库想法也会起作用,但你的应用软件必须不断检查是否有新的消息可用(这意味着会有很多不必要的流量,至少如果你的数据库和应用程序不在同一台机器上),你必须自己处理这些检查,等
另一方面,SOAP将数据直接发送到服务器应用程序,并隐式地处理所有令人讨厌的事情,如类型安全或序列化。
您可以从万维网联盟中找到很多文档和示例,它们巧妙地解释了SOAP是如何定义的以及它是如何工作的。在gSOAP的《用户指南》中,还有关于如何用C++设置SOAP服务器的各种示例。
如果你正在编写C++程序,你只需要编写它来使用CGI,这样你的web服务器就会将你的C++程序作为一个"脚本"来运行,以处理相关的http请求,并且你会直接从你的C++程序输出http响应。
http://en.wikipedia.org/wiki/Common_Gateway_Interface
这不是很容易。你应该看看谷歌的解决方案:
称为云到设备消息传递框架,用于向Android设备发送消息。
你正在做的叫做推。这是一个视频从谷歌IO.
只要把你的c++应用程序想象成Android设备。
您的C++应用程序将通过某个tcp/ip端口连接到服务器,连接到您创建的只等待连接的服务。你的应用程序会告诉服务器运行该应用程序的用户的ID,或者如果它是多播的,你的应用会等待服务器给它一条消息。
您的Web服务器可以使用进程间通信、命名管道、命名互斥体等来单一化您的服务,从而在所有打开的TCP/IP连接上发送消息。
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 是否可以使用winusb同时与多个相同的usb设备进行通信
- 混淆了如何使用IDL与Ethovision进行通信
- C++ Boost::asio串行通信与Arduino无法写入
- 我是否需要包含隐式使用/与 WindowsAPI 通信"Windows.h"?
- 通过TCP的PvP通信问题
- C++一个线程如何正确通信其任务已完成?
- 在 emscripten 网页汇编正在运行期间更新进度条?
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- 删除功能不适用于串行通信后多个循环中的多个实例
- 网站和C++程序在同一台 Linux PC 上的通信
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- 使用 pybind11 共享 MPI 通信器
- 进程间通信堆内存
- 如何使用QT创建器获取网页源代码?
- C++ TCP 套接字通信 - 连接按预期工作,几秒钟后失败,没有收到新数据,read() 和 recv() 块
- Qt 网页程序集缓存
- C++ 两台不同机器之间通过wifi进行套接字通信
- 提升::Asio 异步聊天客户端停止与服务器通信
- 获取用于与C++应用程序通信的网页