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

什么网站可以学习建设工程法律实践做网站生意不赚钱

什么网站可以学习建设工程法律实践,做网站生意不赚钱,小程序代码生成,5昌平区网站建设项目左侧包结构 rpc服务端实现 使用golang官方的net/rpc库实现RPC方法,使用http作为RPC的载体,通过http/net包监听客户端连接请求。 rpc服务端实现代码serverrpc.go如下 package mainimport ("errors""fmt""log""…

项目左侧包结构

rpc服务端实现

使用golang官方的net/rpc库实现RPC方法,使用http作为RPC的载体,通过http/net包监听客户端连接请求。

rpc服务端实现代码serverrpc.go如下

package mainimport ("errors""fmt""log""net""net/http""net/rpc""os"
)// 运算结构体
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服务rpc.HandleHTTP()         //采用http作为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")http.Serve(lis, nil) //net.Listen是阻塞的,需要通过这里进行启动
}

rpc客户端实现

上述服务端程序运行之后,将会监听本地的8090端口,我们可以实现一个客户端程序,连接服务端并且实现RPC方法调用。

rpc客户端实现代码clientrpc.go如下

package mainimport ("fmt""log""net/rpc"
)// 算数运算请求结构体
type ArithRequest struct {A intB int
}// 算数运算响应结构体
type ArithResponse struct {Pro int  //product 乘积Quo int  //quotient 商Rem int  //remain 余数
}func main() {//通过网络实现rpc远程进程调用conn, err := rpc.DialHTTP("tcp", "127.0.0.1:8090") if err != nil {log.Fatalln("dailing error", err)}req := ArithRequest{9, 2}  //请求结构体var res ArithResponse    //响应结构体,用于存储运算结果//实现rpc之后,通过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)//实现rpc之后,通过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.查看输出结果是否正确,输出结果如下表示程序运行结果正确,当然我这里的结果是根据我在请求结构体里面给出的俩个数值进行计算的,具体结果是否正确根据自己的具体程序判断。

总结:

通过官方库net/rpc实现rpc远程进程调用非常方便,并且实现还是比较简单的,但是有一个缺点就是不能跨平台。 

http://www.dtcms.com/wzjs/559011.html

相关文章:

  • 网站建设项目售后服务承诺在线网页制作
  • 网站文字不能编辑器电商网站建设课程设计实验报告
  • 怎样做带音乐的表白网站小程序开发定制外包
  • 马鞍山网站建设方案酒店预订网站建设
  • 社工站建站流程网页设计模板html代码dw
  • 网站怎么对接微信支付宝网络设计有哪些学校
  • 网站建设找好景科技如何在本单位网站上做链接
  • 企业网站要更新文章吗wordpress 医疗主题
  • 做淘宝保健品药品在哪个网站找素材wordpress tao2014
  • 社交网站推广怎么做免费文档网站
  • php建网站免费网站推广网站破解版
  • 厦门单位网站建设wordpress如何导入数据
  • 网站后台信息发布这样做用电脑做兼职的网站
  • 网站建设ASP心得体会5118关键词挖掘工具
  • 小企业官方网站制作网站类推广软文怎么写
  • 广告推广平台网站有哪些专门做推荐的网站
  • 百度做个公司网站要多少钱网页海报设计教程
  • 比较好的外贸网站怎样建立一个营销的公司网站
  • seo整站优化哪家好关于一学一做的短视频网站
  • 网站做优化一开始怎么做wordpress404无法加载
  • 紫网站建设2015军考网站建设
  • 西安建设银行网站长沙专业网站建设.
  • 现成的手机网站做APP个体工商户可以备案哪些网站
  • 中文网站建设模板下载WordPress电影资源分享下载站
  • 网站后台多附件上传网站开发涉及内容
  • 婚庆摄影企业网站深圳前十设计公司
  • 深圳网站建设营销服务平台自己网站做优化的有权利卖么
  • 精品课网站建设凡科快图官方下载
  • 南宁网站设计多少钱最近三天发生的重要新闻
  • 旅游网站建设要求网页微博怎么用qq登录