一、项目描述
项目需要有客户端和服务器两个程序,客户端负责发送请求,客户端负责接收请求数据,查询数据库,给客户端返回结果。
项目整体需要Jsonrpc框架进行数据传输,数据的decode和encode需要Jsoncpp库,mysql数据库操作需要mysql++库,项目的编译需要scons。总之,整个项目的难点在于Jsonrpc、Jsoncpp、mysql++、scons的学习、理解和使用。
这个项目拖了很久,也是因为老师那里不急,所以我就慢慢的做,突破一个一个的难点,终于把这个流程走通。过程中最难的地方在于Jsonrpc的理解(不仅仅是使用),网上的资料实在太少,最后还是结合api才勉强搞懂。其次是scons的使用,因为之前没有使用过make等编译工具,对其中的固定套路一窍不通,都需要从零开始查资料,不断尝试。Jsoncpp和mysql++没有给我造成很大的困扰,因为我知道这两个东西是什么,理解上没有困难,之需要解决一些具体的问题就行。
Last but not least,这一切的基础在于linux系统的使用,本学期开学前的完全不懂linux系统,现在已经突破了对linux系统的恐惧,总体结构也已经大致了解,只等在实践中提高认识,还有vim已经用的得心应手。
而且,做这个项目的整个过程也让我体会到一个事实——我现在的基础已经很牢固,已经有足够的能力来突破任何一个问题,我的知识结构的知识面已经铺开,现在给我任何一个问题我都不会惊慌失措,我已经基本掌握了计算机相关知识的基础和学习方法。
总之,这个被老师抛弃的项目给我带来很大的收获。
二、对Jsonrpc-cpp的理解
Json-rpc是基于json的跨语言远程调用协议,这是官方的定义,它只是一个协议,而没有任何的实现,它规定了客户端和服务器之间用json格式通信,它规定了客户端发送的数据格式,服务器端返回的数据格式,某个固定的key对应的value代表什么,只有这些。而Jsonrpc-cpp,是用c++语言(及相应的核心库)实现的一个框架,它完全遵守了Jsonrpc协议规定的内容,但是它定义了自己的函数,有自己的实现方式。
三、对Jsoncpp的理解
Jsoncpp是c++对json数据操作的库(只能称为库),主要操作就是序列化(encode)和反序列化(decode)
四、对scons的理解
五、对mysql++的理解