PHP与C++应用程序的通信

Jos*_*ald 9 php c++ sockets

我一直在谷歌搜索一段时间,但我遇到的问题是我不确定我需要搜索的是什么.(搜索PHP C++通信似乎不是我需要的)我基本上是为游戏服务器开发一个c ++插件,我想创建一个可以向/从C++插件传递数据的Web界面.游戏已经使用RCON端口进行远程管理访问,但我偶然发现了他们使用的网络接口的标题,所以我想我可以使用它.

我的问题是我对使用套接字不是很熟悉.我假设我基本上需要在C++中打开一个套接字并让它监听,然后在PHP中,连接到该套接字,传递数据并关闭它.

这是界面... http://www.ampaste.net/m2f6b6dbc

我大部分时间都会像当前连接的玩家名单,名字和分数那样提取信息.并传递命令以重启服务器,关闭服务器等.

任何帮助都会很棒,谢谢!

mel*_*oon 5

你可以试试Thrift.它是由Facebook的工程师编写的,现在它是一个Apache项目.

Thrift是可扩展的跨语言服务开发的软件框架.它将软件堆栈与代码生成引擎相结合,以构建在C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,Smalltalk和OCaml之间高效无缝工作的服务.

链接:http://incubator.apache.org/thrift/

简而言之,它完全符合您的要求.它使不同语言可以轻松地相互通信.而不是试图提出一些基于套接字的协议进行通信,你可以在PHP中调用一个函数,如下所示:

$game->getScores();
Run Code Online (Sandbox Code Playgroud)

它会自动插入到C/C++程序中名为getScores的函数中.唯一的缺点是正确配置可能有点痛苦.


Kel*_*Kel 3

我敢于推荐使用一些标准的分布式组件通信方式,例如 XML RPC。有适用于 PHP 和 C++ 的库:http ://en.wikipedia.org/wiki/XML-RPC#Implementations

这种方法将使您在通信协议实现过程中避免重新发明轮子,并使进一步的维护成本更低。