如何进行Go jsonrpc
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天就跟大家聊聊有关如何进行Go jsonrpc,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。大家好,由于这段时间比较忙,好久不更了,现在给大
千家信息网最后更新 2026年11月02日如何进行Go jsonrpc
今天就跟大家聊聊有关如何进行Go jsonrpc,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
大家好,由于这段时间比较忙,好久不更了,现在给大家介绍以下go的jsonrpc用法,理论原理不多说,我个人认为看着代码的注释去理解原理是最好的
(1) 服务端代码
package main
import (
"fmt"
"log"
"net"
"net/rpc"
"net/rpc/jsonrpc"
"os"
)
// Resp 返回值结构体
type Resp struct {
Country string
Province string
City string
Latitude float64
Longitude float64
TimeZone string
Data string
}
// Serve
type Serve struct {
}
// 参数结构体
type Agrs struct {
IpString string
Data string
}
//json rpc 处理请求
// GetData 获取数据
func (s *Serve) GetData(agr Agrs, res *Resp) error {
res.City = "南宁"
res.Province = "广西"
res.Country = "中国"
res.Latitude = 888.888
res.Longitude = 111.111
res.TimeZone = "ssss"
res.Data = agr.Data // 返回你传的数据
return nil
}
func main() {
// 初始化jsonRPC
serve := &Serve{}
// 注册服务
rpc.Register(serve)
//绑定端口
address := "127.0.0.1:8080"
tcpAddr, err := net.ResolveTCPAddr("tcp", address)
checkError(err)
listener, err := net.ListenTCP("tcp", tcpAddr)
checkError(err)
log.Println("json rpc is listening", tcpAddr)
// 一直连接
for {
conn, err := listener.Accept()
if err != nil {
continue
}
go jsonrpc.ServeConn(conn)
}
}
// 验证错误
func checkError(err error) {
if err != nil {
fmt.Println("Fatal error ", err.Error())
os.Exit(1)
}
}
(2) 客户端代码
package main
import (
"fmt"
"log"
"net/rpc"
"net/rpc/jsonrpc"
)
type Response struct {
Country string
Province string
City string
Latitude float64
Longitude float64
TimeZone string
Data string
}
type Client struct {
*rpc.Client
}
type agrs struct {
IpString string
Data string
}
func main() {
var (
c = new(Client)
err error
)
if c.Client, err = jsonrpc.Dial("tcp", "127.0.0.1:8080"); err != nil {
log.Fatal("dialing:", err)
}
// Synchronous call
var res Response
var a agrs
a.IpString = "219.140.227.235"
a.Data = "is my data"
err = c.Call("Serve.GetData", &a, &res)
if err != nil {
log.Fatal("ip2addr error:", err)
}
fmt.Println(res)
}
(3) 运行
运行server.go
然后运行client.go
你会有意外惊喜哦
看完上述内容,你们对如何进行Go jsonrpc有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
代码
内容
运行
原理
数据
结构
服务
惊喜
个人
参数
客户
客户端
时间
更多
最好
注释
理论
知识
端口
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
上海睿民互联网科技有限公司
中关村互联网科技集团
喔噻互联网科技
碳银互联网科技
易通互联网络科技有限公司
互联网科技股有哪些
北京三清互联网科技
互联网科技寓意
湖南一路畅行互联网科技
佛山市翊博互联网络科技有限公司
互联网科技如何创业
群盈汇互联网科技有限公司
互联网金融科技元年
黑云互联网科技有限公司
广州富喜互联网络科技
互联网科技融合创新
江苏互联网科技小贷
广州梦谷互联网科技有限公司领导
互联网科技快速发展优美句子
有马互联网科技
亿账通互联网科技
长亮科技互联网金融
互联网科技股有哪些
无锡溥仪互联网科技有限公司
汽车互联网创新科技园
阿大互联网科技有限公司
坤平互联网科技
互联网科技公司营业执照怎么办理
35岁以上互联网科技行业