【发布时间】:2010-06-14 22:59:26
【问题描述】:
有没有一种相对简单的方法可以在网页上显示 C++ 程序的输出?而且我的意思不是手动,换句话说,你在网页上看到它,因为它运行而不是我自己制作代码标签并编写它。
编辑:为了让每个人都清楚这一点,我将把它贴在这里。我不是想用 C++ 制作网页。如果这听起来很恶意或其他什么,请原谅我,但我得到了很多与此相关的答案。
【问题讨论】:
标签: c++
有没有一种相对简单的方法可以在网页上显示 C++ 程序的输出?而且我的意思不是手动,换句话说,你在网页上看到它,因为它运行而不是我自己制作代码标签并编写它。
编辑:为了让每个人都清楚这一点,我将把它贴在这里。我不是想用 C++ 制作网页。如果这听起来很恶意或其他什么,请原谅我,但我得到了很多与此相关的答案。
【问题讨论】:
标签: c++
第一步,让自己成为一种服务器端语言。无论是 PHP、ASP、Python、Ruby 等等。把它设置好,这样你就可以上菜了。
第二步,找到您的语言对应的 exec。几乎所有人都有。它会让您像从命令行一样运行命令,通常带有参数并捕获输出。这是 PHP 的:
http://php.net/manual/en/function.exec.php
当然,如果您将用户输入作为参数传递,请清理!
我刚刚看到您接受了 Scott 的回答。我通常不会如此执着地追逐一个 SO 线程,但我担心你会犯一个错误,你会后悔的。直接访问您的程序及其自己的内置服务器是一个糟糕的主意,原因有两个:
你浪费了一天时间来实现这个内置服务器,然后让它持久化并测试它
更重要的是,您刚刚在您的服务器中打开了另一个攻击向量。在安全方面,请保持简单。
让您的 C++ 应用程序在另一种(成熟的)服务器端语言之后运行会更好,因为所有工作都已为您完成,并且它可以过滤输入以确保安全。
【讨论】:
您可以使用 C++ 编写 CGI 应用程序,也可以使用现有的 Web 服务器语言来执行命令并将输出发送到客户端。
【讨论】:
你想使用Witty。
Wt(读作“witty”)是一个 C++ 用于开发交互式网络的库 应用程序。
API 以小部件为中心且类似 到桌面 GUI API。对开发商来说, 它提供了任何完整的抽象 特定于 Web 的实现细节, 包括事件处理、图形 支持,优雅降级(或 渐进增强),漂亮 网址。
与许多基于页面的框架不同,Wt 旨在创建有状态的 同一时间的应用程序 高度互动(利用 诸如 AJAX 之类的技术 最完整)和可访问(支持 普通 HTML 浏览器),使用自动 优雅的退化或渐进的 增强。
该库附带一个应用程序 充当独立网络的服务器 服务器或通过 FastCGI 集成 与其他网络服务器。
【讨论】:
我不确定这是否是您要查找的内容,但您可能想要 CGI 您可能想要查看 this SO question,C++ 可能不是您想要做的最佳语言。 s>
根据您发布的问题编写一个您想要的网络应用程序并非易事。我建议使用其他一些库 (this is one i found with a quick google) 在您的服务器上获取 Web 控制台,并为运行它的用户授予对除您安装应用程序的文件夹之外的每个文件夹的执行拒绝权限。
如果您没有正确设置安全性,这仍然是一种危险的方法,但它是最简单的解决方案,无需过多地挖掘现有库以使应用程序具有交互性。
编辑—— “最佳”解决方案是学习 AJAX 并让您的程序使用它发布自己的页面,但就像我说的那样,这并不容易。
【讨论】:
听起来您想要在网页中嵌入 telnet 会话之类的东西。快速谷歌搜索了许多 Java telnet 应用程序,但我没有资格评估哪个最适合嵌入到 html 中。
您将在主机上设置登录脚本以运行您的 c++ 应用程序,并且用户将通过 shell 窗口与其交互。请注意,这仅适用于纯命令行应用程序。如果您想以这种方式使用 GUI 应用程序,那么您应该研究远程桌面软件或 VNC。
【讨论】:
【讨论】:
您是否正在寻找类似codepad.org 的东西?我相信他们会解释他们是如何做到的here。
【讨论】:
有一个名为 C++ Server Pages - Poco 的库。我将它用于我的一个大学项目,它非常好。还有很好的文档可以开始使用,你可以在这里找到它http://pocoproject.org/docs/
【讨论】: