【问题标题】:Web interface for a C++ programC++ 程序的 Web 界面
【发布时间】:2012-09-28 22:15:37
【问题描述】:

我正在为我的学业结束开发一个项目。这个项目基本上是一个服务器,是跨平台的,用C++开发的。

我想知道是否有可能制作一个可以使用的 Web 界面,例如 listener 设计模式来记录程序所做的事情。这将是跨平台的,并且是理想的,因为该程序应该在远程服务器上运行。

我的问题是:是否有任何网络技术可以让我在程序记录某些内容时实时更新我的​​网页。我知道这很不寻常,而且我不是网络技术专家,这就是我问的原因。

Erlang 会这样做吗?

感谢您的帮助

编辑:举一个更具体的例子,我希望能够实时跟踪我的程序的执行情况,并看到我的程序日志出现在页面上。这个想法是使用一个网页,例如我在 Windows 上使用 WPF 或在 Linux 上使用 GTK。就像有人说的那样,这将是我的应用程序的某种监视器。

【问题讨论】:

  • 完全不清楚。 web interface 下是什么意思?谁来更新网页等
  • 我不确定我得到你想要做什么。你是说你想看看这个程序在浏览器中做什么?

标签: c++


【解决方案1】:

这比您想象的要容易得多。 Web 服务器基本上以路径名的形式获取请求,并返回一个页面。如果设置正确,它将调用程序来创建内容。这称为“CGI”。

如果您可以在不进行实时更新的情况下做到这一点,那就超级简单:只需刷新页面,您的程序就可以再次被调用。

如果您想要实时更新,则需要做更多工作。最简单的方法是使用一点轻量级的 javascript。这里的神奇词是 AJAX。这两个网上都有很多教程,google一下就行了。

主要是从一个非常非常简单的示例开始并添加到它。特别是 Javascript 有点奇怪。不过,请按照教程进行操作,您会得到它。

【讨论】:

  • 非常感谢您的回答!我对 AJAX、JS 和 JQuery 有点熟悉。棘手的部分是在程序处理某些内容时基本上更新显示给用户的内容,而无需用户刷新页面。甚至可能吗?再次感谢您的帮助
  • 你打赌。编写一个使用$.get() 调用AJAX 例程的函数。将该函数放入对 setInterval(fn,inerval) 的调用中,其中 fn 是您的函数,interval 是毫秒数,例如,1000 每秒一次。使用结果更新您的显示。
  • 这里是关于 ajax 部分的小短句:viralpatel.net/blogs/…
  • 哇,我不知道我可以用 AJAX 做到这一点。我很惊喜,会完全使用它。这正是我想要的。抱歉我的无知,非常感谢您的帮助!
  • @CharlieMartin:当然,除了 Jon Skeet,因为答案是从他身上学到的 ;)
【解决方案2】:

您可以嵌入一个网络服务器,例如http://code.google.com/p/mongoose,并使用 xhr 或更好地使用 websockets 来轮询它。

或者使用 Nagios 等监控解决方案(Nagios Core 是免费的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多