当前位置: 首页 > news >正文

台州网站建设公司哪家好wordpress 单本小说

台州网站建设公司哪家好,wordpress 单本小说,微信小程序案例展示,西安外贸网站开发首先在golang实现rpc方法一net/rpc库中实现了RPC方法#xff0c;但是那个方法不是跨平台的#xff0c;没法在其他语言中调用这个实现的RPC方法#xff0c;接下来我们可以通过jsonroc库实现跨语言的RPC方法。俩种实现方式的代码其实也是差不多的#xff0c;大差不差#xf…首先在golang实现rpc方法一net/rpc库中实现了RPC方法但是那个方法不是跨平台的没法在其他语言中调用这个实现的RPC方法接下来我们可以通过jsonroc库实现跨语言的RPC方法。俩种实现方式的代码其实也是差不多的大差不差只是调用的库不同。 项目左侧包结构 rpc服务端 serverrpc.go实现代码如下 package mainimport (errorsfmtlognetnet/rpcnet/rpc/jsonrpcos )// 运算结构体 type Arith struct { }// 运算请求结构体 type ArithRequest struct {A intB int }// 运算响应结构体 type ArithResponse struct {Pro int //product 表示乘积Quo int //quotient 表示商Rem int //remaind 表示余数 }/* 运算结构体的乘法运算方法 第一个参数只需要拿到其里面的值只需要传一个结构体即可 第二个参数需要将运算结果存到其里面所以需要传地址 */ func (this *Arith) Multiply(req ArithRequest, res *ArithResponse) error {res.Pro req.A * req.Breturn nil }/* 运算结构体的除法运算方法 第一个参数只需要拿到其里面的值只需要传一个结构体即可 第二个参数需要将运算结果存到其里面所以需要传地址 */ func (this *Arith) Divide(req ArithRequest, res *ArithResponse) error {if req.B 0 { //除法为0运算不合法return errors.New(divide by zero)}res.Quo req.A / req.Bres.Rem req.A % req.Breturn nil } func main() {rpc.Register(new(Arith)) //注册rpc服务lis, err : net.Listen(tcp, 127.0.0.1:8090) //Listen是block(阻塞的)if err ! nil {log.Fatalln(fatal error:, err)}fmt.Fprintf(os.Stdout, %s, start connection)//写了一个循环里面启动了一个协程可以处理多个协程for {conn, err : lis.Accept() //接收客户端连接请求if err ! nil { //当前请求存在错误跳过当前请求continue}//启动一个协程并发处理请求go func(conn net.Conn) {fmt.Fprintf(os.Stdout, %s, new client is coming\n)jsonrpc.ServeConn(conn)}(conn) //自己调用自己} } rpc客户端 clientrpc.go实现代码如下 package mainimport (fmtlognet/rpc/jsonrpc )// 算数运算请求结构体 type ArithRequest struct {A intB int }// 算数运算响应结构体 type ArithResponse struct {Pro int //product 乘积Quo int //quotient 商Rem int //remain 余数 }func main() {//通过jsonrpc库实现conn, err : jsonrpc.Dial(tcp, 127.0.0.1:8090)if err ! nil {log.Fatalln(dailing error, err)}req : ArithRequest{9, 2} //请求结构体var res ArithResponse //响应结构体用于存储运算结果//实现jsonrpc之后通过Call方法在客户端调用服务端里面算数运算结构体的乘法运算方法err conn.Call(Arith.Multiply, req, res)if err ! nil {log.Fatalln(arith error, err)}fmt.Printf(%d * %d %d\n, req.A, req.B, res.Pro)//实现jsonrpc之后通过Call方法在客户端调用服务端里面算数运算结构体的除法运算方法err conn.Call(Arith.Divide, req, res)if err ! nil {log.Fatalln(arith error, err)}fmt.Printf(%d / %d, quo is %d, rem is %d\n, req.A, req.B, res.Quo, res.Rem) }详细实现步骤 1.首先初始化项目 go mod init pro01 //pro01表示项目名称 2.在当前项目下新建包server并且在该包下面新建serverrpc.go实现rpc服务端 3.在当前项目下新建包client并且在该包下面新建clientrpc.go实现rpc客户端 4.运行rpc服务端程序 ,首先进入server包然后运行serverrpc.go cd server go run serverrpc.go 5.运行rpc客户端程序首先进入client包然后运行clientrpc.go cd client go run clientrpc.go 6.查看输出结果是否正确输出结果如下表示程序运行结果正确当然我这里的结果是根据我在请求结构体里面给出的俩个数值进行计算的具体结果是否正确根据自己的具体程序判断。  常见错误 如果启动rpc服务时出现了如下图所示错误说明在之前已经启动过rpc服务并且没有关闭导致端口被占用了只需要把之前启动的程序停掉然后重新启动rpc服务即可。 总结 jsonrpc库和net/rpc都实现了rpc方法实现了远程进程调用区别在于net/rpc是不跨平台的别的语言没法调用而jsonrpc是跨平台的别的语言也可以调用rpc方法。
http://www.zqtcl.cn/news/333054/

相关文章:

  • 毕业设计做网站应该学什么wordpress调用子分类
  • 怎么建网站做淘宝客用国外网站 图片做自媒体
  • 汕头建站模板搭建怎么制作有效网站
  • 学生个人网站作品怎么wordpress用的什么主题
  • 设计logo网站侵权吗知乎一键做单页网站
  • 网站服务器有什么用做视频网站视频存放问题
  • 影评网站建设可以免费发布招聘网站
  • 富阳做兼职的网站正邦设计上海分公司
  • 网站漏洞解决办法投资
  • wordpress网站如何网页设计实训总结3000字大学篇
  • 用ps怎么做网站导航条wordpress 开启缩略图
  • 网上销售型的企业网站为什么要域名备案
  • 唐山网站建设方案优化国内酷炫网站
  • 国外网站备案吗网站做一样没有侵权吧
  • 谷歌怎么建网站ps中怎样做网站轮播图片
  • 汕头有没有做网站廊坊宣传片制作公司
  • 百度快速收录网站有些人做网站不用钱的 对吗
  • 如何规划一个网站网站建设预付费入什么科目
  • 北京做网站的好公司有哪些网站建设杭州缘择低价
  • 建设网站团队张掖响应式建站平台
  • 中国建设之乡是哪里网站优化连云港哪家强?
  • 网站建设报价是多少30号长沙封城最新消息
  • 常州专业网站建设费用电商推广技巧
  • 辽源市网站建设南通营销网站开发
  • 新站优化案例去韩国用什么地图导航
  • 宁波网站制作与推广WordPress怎么文章分类
  • mvc 做网站国内的搜索引擎有哪些
  • 设计视频网站腾讯云服务器网站域名备案
  • 网站建设费算费用还是固定资产镇赉县做网站的
  • 山西 旅游 英文 网站建设wordpress 设置登陆界面