• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php与其他语言的交互(80),该如何解决

php 搞代码 4年前 (2022-01-25) 10次浏览 已收录 0个评论

php与其他语言的交互(80)
假如我现在有一个web服务器 S1
还有一个 应用服务器 S2(比如做搜索功能)

S1y用php写的, S2的应用是用c(或者java,c++)写的,
怎么样实现这两台服务器之间的交互

流程我是这样想的,
1.用户访问S1
2.服务器将运算交给S2
3.S2将运算结果返回S1
4.S1返回信息给用户

——解决方案——————–
soap
——解决方案——————–
json不可以吗
——解决方案——————–
任何网络上服务器间的数据通讯方案都可以使用
soap/xmlrpc/REST/json(p)/ 这些都是比较方便的成熟的

如果你对这两个服务器都有足够控制权限,
当然也可以自己通过socket直接通讯(可以用非80端口)

如果这两个服务器都可以操作某个公共媒介,比如同一个数据库,或网络文件系统,
当然也可以通过这个媒介传递数据。。。

。。。。

——解决方案——————–
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition – December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
——解决方案——————–
可以尝试用这个
http://developer.51cto.com/art/201002/182757.htm
当然略有差异。目标是一样的
——解决方案——————–
写接口吧
——解决方案——————–
最简单的方法应该是使用php的file_get_contents(‘http://ip:port’),可以通过GET或者POST方式传值,而函数的返回值就是S2的处理结果,关键是S2要如何创建一个基于http协议的监听程序。

使用libevent可以非常方便,快捷的建立一个http服务,一个简单的代码如下:

C/C++ code

#include   #include  #include  #include   #include  #include    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)本文来源gaodai#ma#com搞*!代#%^码$网!搞代gaodaima码;     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); }


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php与其他语言的交互(80),该如何解决

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址