C语言和脚本语言(本文中包括Java等所有高级语言)的通信有两个层次: 1, 编程语言接口(API); 2, 进程间通信(IPC).
编程语言接口的方式, 可以看作是线程单(进程内)通信, 在某些方面速度较快. 但是接口多样, 各种语言都不相同, 造成不必要的复杂度.
进程间通信包括网络通信(Socket), 本地通信(如管道). 使用本种方式, C语言与脚本语言是单一接口, 而且统一.
Web服务器可能包括两种通信方式, 如Apache可以通过fastcgi和PHP进行Socket通信, 也可以通过mod_php使用API与
PHP进行通信.
关键在于网络通信协议的定义, 比如, 如何序列化一个登录报文, 让C, Java, PHP都认识, 这就由你来定了. 一旦定出来, 接口代码的
编写也非常简单. 也可以使用通信的协议, 如json, Google 的 protobuf 等等.
On Sep 4, 8:09 pm, 木木王 <songlin...@gmail.com> wrote:
> 有朋友对lua有所研究嘛?如何将lua很好的融入到游戏中去。
1. 用lua做配置文件使用, 好像见过一些. 不过, 配置文件能在项目中占多大的比重呢?
2. 不知道是什么类型的简单的运算?
3. 函数可以看作是死的, 函数必须有数据才能有活力. 这些数据可能通过参数传递, 也可以是函数外围(全局)的. 这些数据的组织, 假设C
+Lua, 是用C来做, 还是用Lua来做呢? 这一点我比较疑惑. 假设我用C语言实现了连连看游戏算法, 有相应的C数据结构, 那么, 能把什
么交给Lua做呢? 如果反过来, 用Lua实现了连连看游戏算法, 又如何? 对于后一种情况, 如果说考虑性能用C来做连通测试, 那么C程序必须
先将Lua的数据结构转化, 可能性能得不偿失.
想来想去, 我还是觉得Web系统是多语言混合的最佳实例 - 无论从服务器端还是客户端.
On Sep 4, 8:24 pm, songlin luo <songlin...@gmail.com> wrote:
> 让lua毫无忌惮的执行,是件很危险的事情。本人打算这么做:
> 1.lua做配置文件使用
> 2.lua运行简单的运算
> 3.lua调用引擎内函数,同时引擎内函数也可以调用lua函数,共同完成游戏的部分AI以及业务模块。
>
> 对于第3点,本人还没有实现。聆听下高手的意见。