2019独角兽企业重金招聘Python工程师标准>>>

// 服务器代码
package main// rpc 服务
import ("net/rpc""net""log""net/http"
)type Name struct {MyName string
}type Age struct {MyAge string
}type My struct {Name stringAge string
}
// 暴露api 接收一个Name指针结构 和一个指针字符串 返回一个错误信息
func (m *My) SetName (name *Name,s *string) error{*s = name.MyName+"Set-Name"return nil
}
// 暴露api
func (m *My) SetAge (age *Age,s *string) error{*s = age.MyAgereturn nil
}func main() {arith:= new(My)rpc.Register(arith) // 注册rpc.HandleHTTP() // 初始化l,e:=net.Listen("tcp",":8080")if e!=nil {log.Fatal("sevice error.")}// 启动服务http.Serve(l,nil)
}

客户端代码

package main// rpc 客户端
import ("net/rpc""log""fmt"
)
type MName struct {MyName string
}func main()  {// 拨号链接服务client,err:=rpc.DialHTTP("tcp","127.0.0.1:8080")if err!=nil {log.Fatal("client not find")}name:=&MName{"lyl"} // 创建服务需要的结构参数var g string // 接收数据返回的类型err = client.Call("My.SetName",name,&g)fmt.Println(g) // 输出返回值}

转载于:https://my.oschina.net/u/3529405/blog/1829873

go 简单的RPC服务与客户端通讯相关推荐

  1. 基于消息中间件RabbitMQ实现简单的RPC服务

    转载自  基于消息中间件RabbitMQ实现简单的RPC服务 RPC(Remote Procedure Call,远程过程调用),是一种计算机通信协议.对于两台机器而言,就是A服务器上的应用程序调用B ...

  2. 利用java实现简单的RPC服务调用

    一.前言 RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输 ...

  3. Netty 的基本简单实例【服务端-客户端通信】

    Netty是建立在NIO基础之上,Netty在NIO之上又提供了更高层次的抽象. 在Netty里面,Accept连接可以使用单独的线程池去处理,读写操作又是另外的线程池来处理. Accept连接和读写 ...

  4. Go实现简单的TCP服务端客户端通信(有黏包)

    目录 客户端代码 服务端代码 封包协议 客户端代码 // socket_stick/client2/main.gofunc main() {conn, err := net.Dial("tc ...

  5. 服务计算--简单 web 服务与客户端开发实战

    一.概述 利用 web 客户端调用远端服务是服务开发本实验的重要内容.其中,要点建立 API First 的开发理念,实现前后端分离,使得团队协作变得更有效率. 任务目标 选择合适的 API 风格,实 ...

  6. Swoft 2.x 微服务基础(Consul、RPC 服务发现、限流与熔断器)

    本篇概要: 1. Swoft 服务注册与发现: 1.1 Consul 概况: 1.2 在 Consul 注册服务.反注册: 1.2.1 注册服务: 1.2.2 反注册: 1.3 健康检查: 1.4 服 ...

  7. 小司机带你撸一个简单的RPC框架

    随着业务的增长,有时候普通的单一型架构不再能满足我们的需求,这就诞生了RPC框架,经过多年的发展,我们可以看到市面上可用性高的开源RPC框架还是比较多的,比如说:Hessian,Dubbo等,这些框架 ...

  8. 利用Vert.x构建简单的API 服务、分布式服务

    目前已经使用Vertx已经一年多了,虽然没有太多的造诣,但也已在项目中推广了下:从最初的vertx搭建web服务,到项目上线运营,还算比较稳定.再到后来尝试搭建基于vertx的分布式服务,一路下来也积 ...

  9. yy神曲url解析php_使用PHP来简单的创建一个RPC服务

    RPC全称为Remote Procedure Call,翻译过来为"远程过程调用".主要应用于不同的系统之间的远程通信和相互调用. 比如有两个系统,一个是PHP写的,一个是JAVA ...

最新文章

  1. 一副耳机的钱,竟让我体验了「元宇宙」办公
  2. centos7.0 docker安装部署
  3. Javascript网页摇一摇
  4. Cisco Packet Tracer v7.0安装包下载(358MB)
  5. 初识 java(简单易懂入门篇)
  6. 排查访问Linux Server速度较慢的问题
  7. php hmac sha256签名,HMAC-SHA256签名错误?
  8. python gui下载进度条_对python GUI实现完美进度条的示例详解
  9. java取拼音首字母_java取出汉字字符串的拼音首字母
  10. c语言判断素数 是返回1,c语言编程:设计一个函数用于判断一个数是否为素数,如果是素数返回1,否则返回0。...
  11. 中国电信天翼物联网平台CTWing学习笔记(1)——设备接入(TCP协议)
  12. 恢复Windows7快捷方式小箭头的方法
  13. 中国保险业过去五年基础数据分析
  14. FST构图可视化详解
  15. flinkSql中自定义时间窗口开启时间
  16. 软件安装管家公众号的部分链接
  17. Java 读取resources下的文件
  18. 动手做个VR眼镜,找回童年的感觉
  19. 移动端 - 搜索组件(suggest篇)
  20. 遍历数组的方法和数组的遍历方法(3+10种)(下)

热门文章

  1. libevent c++高并发网络编程_高并发编程学习(2)——线程通信详解
  2. python加密字符串小写字母循环后错两位_Python简单加密程序:如何将Z循环回
  3. 用深度强化学习玩atari游戏_被追捧为“圣杯”的深度强化学习已走进死胡同
  4. 十分漂亮的视频源码解析
  5. c语言中time 0 返回值,clock()返回值为什么是0
  6. 保密 | 利用DOS命令将文本信息隐藏在图片中
  7. 超轻简洁个人引导页网站源码
  8. 奇店社群社区团购小程序v5.5.9
  9. QQ自定义在线机型状态源码
  10. Magento教程 2:Magento 社群版安装教学!