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

Go语言bufio包的使用

准备文本文件

  • rpc_intro.txt
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,  允许调用不同进程空间的程序。RPC 的客户端和服务器可以在一台机器上,也可以在不同的机器上。程序员使用时,就像调用本地程序一样,无需关注内部的实现细节。不同的应用程序之间的通信方式有很多,比如浏览器和服务器之间广泛使用的基于 HTTP 协议的 Restful API。与 RPC 相比,Restful API 有相对统一的标准,因而更通用,兼容性更好,支持不同的语言。HTTP 协议是基于文本的,一般具备更好的可读性。但是缺点也很明显:Restful 接口需要额外的定义,无论是客户端还是服务端,都需要额外的代码来处理,而 RPC 调用则更接近于直接调用。
基于 HTTP 协议的 Restful 报文冗余,承载了过多的无效信息,而 RPC 通常使用自定义的协议格式,减少冗余报文。
RPC 可以采用更高效的序列化协议,将文本转为二进制传输,获得更高的性能。
因为 RPC 的灵活性,所以更容易扩展和集成诸如注册中心、负载均衡等功能。
  • bufio.go
package mainimport ("bufio""fmt""os"
)func main() {/*bufio:高效io读写buffer缓存io: input/output将io包下的Reader,Writer对象进行封装,带缓存的包装,提高读写效率ReadBytes()ReadString()ReadLine()*/fileName := "D:\\桌面\\projects\\goprojects\\Golang仓库\\Golang\\01-go-basic\\bufio\\rpc_intro.txt"file, err := os.Open(fileName)if err != nil {fmt.Printf("error:%v\n", err)return}defer file.Close()// 创建reader对象b1 := bufio.NewReader(file)p := make([]byte, 1024)n1, err := b1.Read(p)fmt.Println(n1)fmt.Println(string(p[:n1]))
}
  • 输出
1024
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,  允许调用不同进程
空间的程序。RPC 的客户端和服务器可以在一台机器上,也可以在不同的机器上。程序员使
用时,就像调用本地程序一样,无需关注内部的实现细节。不同的应用程序之间的通信方式有很多,比如浏览器和服务器之间广泛使用的基于 HTTP 协
议的 Restful API。与 RPC 相比,Restful API 有相对统一的标准,因而更通用,兼容性 
更好,支持不同的语言。HTTP 协议是基于文本的,一般具备更好的可读性。但是缺点也很 
明显:Restful 接口需要额外的定义,无论是客户端还是服务端,都需要额外的代码来处理,而 R
PC 调用则更接近于直接调用。
基于 HTTP 协议的 Restful 报文冗余,承载了过多的无效信息,而 RPC 通常使用自定义的
协议格式,减少冗余报文。
RPC 可以采用更高效的序列化协议,将文本转为二
http://www.lryc.cn/news/258752.html

相关文章:

  • 计算机网络之IP篇
  • Java中JDK类库常用的6种设计模式
  • C++ 用法全面剖析
  • 数据库结构
  • 什么是HTML以及超链接,特殊符号转义的简单使用
  • 汽车销售技巧培训应该学习哪些内容
  • 机器学习---Adaboost算法
  • Java网络编程,使用UDP实现TCP(三), 基本实现四次挥手
  • “百里挑一”AI原生应用亮相,百度智能云千帆AI加速器首个Demo Day来了!
  • PyTorch深度学习实战(25)——自编码器
  • 靠谱的车- 华为OD统一考试(C卷)
  • Apache Flink(十一):Flink集群部署-Standalone集群部署
  • vue的组件传值
  • ue5材质预览界面ue 变黑
  • 【SpringCloud篇】Eureka服务的基本配置和操作
  • 模拟目录管理 - 华为OD统一考试(C卷)
  • 卷王开启验证码后无法登陆问题解决
  • 【知识】如何区分图论中的点分割和边分割
  • 【华为鸿蒙系统学习】- HarmonyOS4.0开发工具和环境配置问题总结|自学篇
  • 第78讲:MySQL数据库Binlog日志的核心概念与应用案例
  • MinGW编译Python至pyd踩坑整理
  • 计算机毕业设计 基于SpringBoot的乡村政务办公系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 命令行参数(C语言)
  • WT2003H4-16S语音芯片:扭蛋机新潮音乐,娱乐升级无限
  • Go 语言开发工具
  • 神经网络是如何工作的? | 京东云技术团队
  • C++ Qt开发:RadioButton单选框分组组件
  • 推荐开源项目-网络应用协议框架Socket.D
  • Redis缓存异常问题,常用解决方案总结
  • java开发的智能聊天机器人_超级AI_支持自动绘画功能