假如我现在有一个web服务器 S1
还有一个 应用服务器 S2(比如做搜索功能)S1y用php写的, S2的应用是用c(或者java,c++)写的,
怎么样实现这两台服务器之间的交互流程我是这样想的,
1.用户访问S1 
2.服务器将运算交给S2
3.S2将运算结果返回S1 
4.S1返回信息给用户

解决方案 »

  1.   

    2楼可能理解错了,soap是android客户端与服务器之间的xml通信我想要的是两台服务器之间的通信,web服务器 和 运算服务器之间的交互,这是两个独立的服务器也可以说是 php 和 c 的交互
      

  2.   


    ?? 啥意思 soap 是android 专用?? 好好学学再说
      

  3.   

    你是不是在说sphinx。和你这个模式是一样的
      

  4.   

    用webservice  nuSOAP 实现具体就是php 使用nuSOAP 调用接口 
    c生成xml数据文件 php 解析就行了
    这只是一种实现方案。
      

  5.   

    谢谢楼上的帮我指出错误
    这个我没说soap是android专用,只是我暂时是用过这一个方面。我不清楚他的其他用法。。sphinx 是全文搜索引擎?我只是举例子运算服务器可能是做搜索的运算,也可以是其他的运算再有就是我想知道的重点:应该怎么样使两个服务器交互
      

  6.   

    任何网络上服务器间的数据通讯方案都可以使用
    soap/xmlrpc/REST/json(p)/ 这些都是比较方便的成熟的如果你对这两个服务器都有足够控制权限,
    当然也可以自己通过socket直接通讯(可以用非80端口)如果这两个服务器都可以操作某个公共媒介,比如同一个数据库,或网络文件系统,
    当然也可以通过这个媒介传递数据。
      

  7.   

    史上最简洁的全攻略,不顶不行!
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  8.   

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
      

  9.   

    我非常希望能有一个现成的模型
    方便的管理数据的收发,解析的部分才需要关心soap,json等数据格式,这个可以先放在后面一点讨论
    那么有没有这样一个模型在php 和 c语言之间存在呢?
      

  10.   

    可以尝试用这个
    http://developer.51cto.com/art/201002/182757.htm
    当然略有差异。目标是一样的
      

  11.   

    刚刚浏览了这篇文章,这只是关于php优化开发方面的。不是我想要的,
    当然这篇文章里面提到的hiphop是个好东西,有机会要好好学习学习
      

  12.   

    有很多库的,随便找了个
    http://www.cs.fsu.edu/~engelen/soap.html
    你试试,
    或者上C论坛问问,肯定更多选择
      

  13.   


    OMG, 你喜欢看西班牙文的?
      

  14.   

    我想问一下hello,这个gsoap库你用过吗?感觉怎么样
      

  15.   


    不好意思,没用过,只是google出来的,我离开 C 已经很久很久很久很久.....了
      

  16.   

    能不能上段简单的soap的代码我看看。
      

  17.   

    那就json 啊,直接给出数组得了。然后程序读取这个json数据进行处理。要传递什么过去 直接操作数据库或者最简单的POST+GET...
    我已经弄过好多了.
      

  18.   

    最简单的办法是直接用http  B上的应用提供一个http接口
    A服务器用file_get_contents访问B的接口。
      

  19.   

    顶soap 如果你那边有C高手,PHP是C写出来了,让他给PHP些一个自定义函数,就可以了嘛,如果写好后记得贴出来啊 呵呵 
      

  20.   

    看你问这么多。还是用JSON吧!好学好用 谁用谁知道我最近做的项目就是前端extjs 中间件是C 数据库是SQL楼主试试不错的
      

  21.   

    按楼上的说法,如果两台服务器的都有控制权,你直接用数据库做媒介得了?还搞这么麻烦干什么?不过个人推荐scoket
      

  22.   

    最简单的方法应该是使用php的file_get_contents('http://ip:port'),可以通过GET或者POST方式传值,而函数的返回值就是S2的处理结果,关键是S2要如何创建一个基于http协议的监听程序。使用libevent可以非常方便,快捷的建立一个http服务,一个简单的代码如下:#include < sys/types.h> 
     
    #include < stdio.h> 
    #include < stdlib.h> 
    #include < unistd.h> 
     
    #include < event.h> 
    #include < evhttp.h> 
     
     
    void generic_request_handler(struct evhttp_request *req, void *arg) 

        struct evbuffer *returnbuffer = evbuffer_new(); 
     
        evbuffer_add_printf(returnbuffer, "Thanks for the request!"); 
        evhttp_send_reply(req, HTTP_OK, "Client", returnbuffer); 
        evbuffer_free(returnbuffer); 
        return; 

     
    int main(int argc, char **argv) 

        short http_port = 8084; 
        char *http_addr = "0.0.0.0"; 
        struct evhttp *http_server = NULL; 
     
        event_init(); 
        http_server = evhttp_start(http_addr, http_port); 
        evhttp_set_gencb(http_server, generic_request_handler, NULL); 
     
        fprintf(stderr, "Server started on port %d\n", http_port); 
        event_dispatch(); 
     
        return(0); 
    }
    他实现了对端口8084的监听,然会返回一个Thanks for the request!作为应答,当然你可以在回调函数里做任何你想做的事,该程序可以在php端通过调用file_get_contents('http://ip地址:8084')进行交互。在大中型网站除了编写php扩展,这种方式是应用最为广泛的,下面地址可以做参考(sina的云计算托管平台)
    http://phpex.sinaapp.com/detail.php?id=21