初学jsonrpc之开源库jsonrpc-c
参考博文:https://zhuanlan.zhihu.com/p/656551689(若有侵权,联系删除)
参考博文:https://zhuanlan.zhihu.com/p/626826013(若有侵权,联系删除)
1. 什么是jsonrpc?
我的理解,jsonrpc就是一种规范的网络传输协议,传输数据是json格式,具体格式可查阅相关资料。jsonrpc还有另一种官方称呼叫远程调用接口,什么意思?即客户端发送的json数据中包含了一个叫method子项,对应的就是服务端的接口函数。例如,method的值是add,那么当服务端解析到add时会直接响应已注册的add接口,返回相应的数据。所以,jsonrpc又叫远程调用接口,意思就是客户端可以远程调用服务端的接口。
2. 如何搭建jsonrpc服务器?
推荐一款简易开源jsonrpc服务器:https://github.com/hmng/jsonrpc-c
(1)安装centos8系统,通过yum安装gcc-c++编译器、安装make;
(2)安装libev,推荐博文:https://zhuanlan.zhihu.com/p/626826013
(3)准备源文件(.c)和头文件(.h),参考下图:
(4)编译:gcc *.c -o server -lev
(5)运行:./server
(6)关闭服务器防火墙,否则从其他机器访问则无法收到响应!
(7)测试:通过网络调试助手TPC连接服务器1234端口:
远程调用“sayHello”:
远程调用“add”:
远程调用“test”(此接口不存在,则返回error):