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 main

import (
	"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 可以采用更高效的序列化协议,将文本转为二

相关推荐

  1. Go语言bufio使用

    2023-12-18 21:36:03       53 阅读
  2. Go bufio

    2023-12-18 21:36:03       30 阅读
  3. Go语言管理工具之Go Modules使用

    2023-12-18 21:36:03       60 阅读
  4. Go语言管理工具之Go Vendor使用

    2023-12-18 21:36:03       60 阅读
  5. go语言net里面PostForm

    2023-12-18 21:36:03       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-18 21:36:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-18 21:36:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-18 21:36:03       87 阅读
  4. Python语言-面向对象

    2023-12-18 21:36:03       96 阅读

热门阅读

  1. 平面上点到直线的距离

    2023-12-18 21:36:03       70 阅读
  2. 【Vue+Mysql实现前端对接数据库】

    2023-12-18 21:36:03       52 阅读
  3. Zookeeper源码剖析:深入理解Leader选举机制

    2023-12-18 21:36:03       54 阅读
  4. selenium学习

    2023-12-18 21:36:03       57 阅读