Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP WebServer集成到本地运行的C++ exe?他们如何互动?_Php_C++ - Fatal编程技术网

PHP WebServer集成到本地运行的C++ exe?他们如何互动?

PHP WebServer集成到本地运行的C++ exe?他们如何互动?,php,c++,Php,C++,我不确定这是如何处理的,所以我想问一下 新一代的MMORPG游戏正试图在Web服务器上连接他们的交易站拍卖系统,这样玩家就可以使用它而不需要任何麻烦,甚至从他们的手机上 最后一个例子是激战2。基本上,系统是这样工作的: 1. You login a locally running client. 2. Open up the auction house in game client. (like HTML frames in this case) 3. The auction house co

我不确定这是如何处理的,所以我想问一下

新一代的MMORPG游戏正试图在Web服务器上连接他们的交易站拍卖系统,这样玩家就可以使用它而不需要任何麻烦,甚至从他们的手机上

最后一个例子是激战2。基本上,系统是这样工作的:

1. You login a locally running client.
2. Open up the auction house in game client. (like HTML frames in this case) 
3. The auction house connects to a webserver instead of sending packets to actual game server, like auctionhouse.guildwars2.com, which is also accessable via browser.
4. You want to sell your Sword, if the auction house successfully takes the Sword, it gets deleted from user inventory (client) and server, hence, client somehow gets informed by webserver reply.
所以。。。我猜。。。 本地运行的客户机C++应用程序如何知道该项目是否被出售或者什么东西失败了?Web服务器是否返回XML/JSON输出以进行验证

比如,webserver返回这个

// XML reply 
<auctionResponse>
   <itemId>184818478A</itemId>
   <success>Successful</success>
   <verifyKey>AG8918ADHWDHA</verifyKey>
</auctionResponse>
我已经向GW2拍卖行的开发者提出了这个问题,但他告诉我他不能分享这方面的信息

那么,基本上,它是如何工作的呢?JSON/XML输出是通过Web服务器还是完全不同的东西来传输数据

任何帮助都将不胜感激


另外,它不是TCP连接。拍卖行本身在端口80上运行,后端使用类似PHP的语言进行编码

虽然我不知道他们具体是怎么做的,但我定期编写类似的应用程序。以下是它的一般工作原理:

PHP可以使用proc_open将管道连接到正在执行的进程。这意味着您可以从PHP中向另一个应用程序发送命令,并在PHP脚本中使用结果。这包括以任何形式编写的自定义exe

另一个选项是运行在localhost或任何其他机器上的服务器应用程序,其中PHP使用CURL与该服务器通信。结果可以JSON、XML、纯文本等格式发送

这两个选项都允许PHP Web服务器在端口80上运行

编辑:


我怀疑您下载的客户端应用程序正在与服务器通信,可能是与web应用程序共享同一数据库的服务器。因此,当你在客户机上购买东西时,他们服务器上的数据库会被更新,他们的web应用程序会有更新的信息。

虽然我不知道他们具体是如何做的,但我会定期编写类似的应用程序。以下是它的一般工作原理:

PHP可以使用proc_open将管道连接到正在执行的进程。这意味着您可以从PHP中向另一个应用程序发送命令,并在PHP脚本中使用结果。这包括以任何形式编写的自定义exe

另一个选项是运行在localhost或任何其他机器上的服务器应用程序,其中PHP使用CURL与该服务器通信。结果可以JSON、XML、纯文本等格式发送

这两个选项都允许PHP Web服务器在端口80上运行

编辑:


我怀疑您下载的客户端应用程序正在与服务器通信,可能是与web应用程序共享同一数据库的服务器。因此,当您在客户机中购买某些东西时,他们服务器上的数据库会更新,他们的web应用程序也会更新信息。

他们可能使用的是与某种形式的RPC相结合的数据库。他们可能使用的是与某种形式的RPC相结合的数据库。客户机与web服务器不在同一台计算机上运行。客户端基本上是下载和运行游戏的玩家。如果proc_open可以附加一个正在运行的exe,那么没有ActiveX控件怎么可能呢?我可以读取/写入它的内存吗?客户端与Web服务器不在同一台计算机上运行。客户端基本上是下载和运行游戏的玩家。如果proc_open可以附加一个正在运行的exe,那么没有ActiveX控件怎么可能呢?我能读/写它的内存吗?
if(auctionHouse.auctionResponse == 'Successful')
{
     if(auctionHouse.auctionResponse == getVerifyKeyFromServer()) //so the server confirms
     {
           DeleteFromInventory(auctionHouse.itemId); //item will be removed from user inventory
     }
}