golang网络编程学习-1rpc

这篇具有很好参考价值的文章主要介绍了golang网络编程学习-1rpc。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网络编程主要的内容是:
1.TCP网络编程
2.http服务
3.rpc服务
4.websocket服务
 

一、rpc

RPC 框架----- 远程过程调用协议RPC(Remote Procedure Call Protocol)-----允许像调用本地服务一样调用远程服务。
RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据

 1.1服务端,提供简单的两个数加法运算

package main

import (
	"fmt"
	"net"
	"net/http"
	"net/rpc"
)

type Server struct {
}

// 一样的请求和响应结构体
type Req struct {
	Num1 int
	Num2 int
}

type Res struct {
	Num int
}

// 计算两个数的和
func (s Server) Add(req Req, res *Res) error {
	res.Num = req.Num1 + req.Num2
	return nil
}
func main() {
	//1.注册rpc服务
	rpc.Register(new(Server))
	//2.绑定
	rpc.HandleHTTP()
	listen, err := net.Listen("tcp", ":8080")
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println("服务已经启动...")
	http.Serve(listen, nil)
}

1.2客户端,调用服务端的函数

package main

import (
	"fmt"
	"net/rpc"
)

//与服务端一样的请求和响应结构体

type Req struct {
	Num1 int
	Num2 int
}

type Res struct {
	Num int
}

func main() {
	cleint, err := rpc.DialHTTP("tcp", ":8080")
	if err != nil {
		fmt.Println(err)
		return
	}
	req := Req{1, 2}
	var res Res
	cleint.Call("Server.Add", req, &res)
	fmt.Println(res)
}

代码结构:

golang网络编程学习-1rpc,golang30天,golang,学习,开发语言

 文章来源地址https://www.toymoban.com/news/detail-597869.html

到了这里,关于golang网络编程学习-1rpc的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习网络编程No.4【socket编程实战】

    北京时间:2023/8/19/23:01,耍了好几天,主要归咎于《我欲封天》这本小说,听了几个晚上之后逐渐入门,在闲暇时间又看了一下,小高潮直接来临,最终在三个昼夜下追完了,哈哈哈!没办法呀,哎!末200章有些些烂尾,结局合乎情理,总的来说优秀,毕竟耳根的名号摆在哪

    2024年02月11日
    浏览(41)
  • 学习网络编程No.1【网络基础知识】

    北京时间:2023/8/4/22:40,天苍苍野茫茫,风吹造地见牛羊,此时心潮澎湃,非常开心,啊哈哈哈!因为就在刚刚我们终于把系统编程方面的知识给学完了,啊哈哈哈!真是功夫不负有心人呀!呜呜呜,仰天而泣,算了,不能发神经,哈哈!今天把最后一节有关多线程知识的课

    2024年02月14日
    浏览(54)
  • 【Java学习笔记】 68 - 网络——TCP编程、UDP编程

    https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter21/src 目录 项目代码 网络 一、网络相关概念 1.网络通讯 2.网络 3.IP地址 4.域名 5.端口号 6.网络通讯协议 TCP协议:传输控制协议 UDP协议: 二、InetAddress类 1.相关方法 三、Socket 1.基本介绍 2.TCP网络通信编程 基本介绍 应用案例

    2024年02月04日
    浏览(50)
  • Java基础学习(17)网络编程

    解释: 在网络通信协议下,不同计算机上运行的程序,进行的数据传输 应用场景 : 即时通信、网游对战、金融证券、国际贸易、邮件、等等 不管是什么场景,都是计算机跟计算机之间通过网络进行 数据传输 Java中可以使用 java.net 包下的技术轻松开发出常见的网络应用程序

    2024年02月05日
    浏览(73)
  • 4.14日网络编程学习

    IP地址:指互联网协议地址(Internet Protocol Address),俗称IP。 要想使网络中的计算机能够进行通信,必须为每台计算机指定一个标识号,通过这个标识号来指定接受数据的计算机或者发送数据的计算机。 在TCP/IP协议中,这个标识号就是IP地址,它可以唯一标识一台计算机,目

    2024年04月15日
    浏览(35)
  • 学习网络编程No.10【深入学习HTTPS】

    北京时间:2023/11/14/18:45,因为种种原因,上个月的文章昨天才更新,目前处于刷题前夕,算法课在看了。这次和以前不一样,因为以前对知识框架没有很好的理念,并不清楚相关知识要学到什么时候才算完,大部分时间都花在了总结博客中,而这次我们已经将主线课程全部学

    2024年02月05日
    浏览(38)
  • Java学习笔记37——网络编程01

    计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 网络编程 在网络通信协议下,实现网络互连的不同计算机上运行的

    2024年02月07日
    浏览(48)
  • 「网络编程」网络层协议_ IP协议学习_及深入理解

    「前言」文章内容是网络层的IP协议讲解。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) IP指网际互连协议, Internet Protocol 的缩写,是TCP/IP体系中的网络层协议。 IP协议位于网络层 网络层解决的问题 传输层 : 负责两台主机之间的数据传输。代表协议:

    2024年02月08日
    浏览(47)
  • 嵌入式学习-网络编程-Day5

    1.使用poll实现TCP服务器的并发 使用select实现TCP客户端的并发

    2024年01月20日
    浏览(58)
  • 学习网络编程No.3【socket理论实战】

    北京时间:2023/8/12/15:32,自前天晚上更新完文章,看了一下鹅厂新出的《扫毒3》摆烂至现在,不知道是长大了,还是近年港片就那样,给我的感觉不是很好,也可能是国内市场对港片不大友好,反正质量不怎么高。然后昨天大部分时间花在了追《我欲封天》这本小说,主要是

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包