grpc流的使用方法和注意事项
我们将分别实现客户端流式、服务端流式和双向流式模式。步骤 1: 创建 Protobuf 文件首先确保你已经有了如下的 Protobuf 文件 hello_stream.proto:syntax ...
TLS握手过程详解
下面是完整的 TLS 认证过程 和 每个阶段是否加密 的详细解释:TLS 握手过程(Handshake)TLS 握手的主要目标是确保客户端和服务器建立一个安全的连接。握手过程包括密钥交换、身份验...
openssl制作证书过程
完整证书生成流程1. 准备 OpenSSL 配置文件 (openssl.conf)首先,创建一个 openssl.conf 配置文件,确保它包含 SANs(Subject Alternative...
Go语言执行本地命令
在 Go 语言中,exec 是用来执行外部命令的包,位于 os/exec 包中。这个包提供了用于执行外部命令的函数,可以让 Go 程序启动新进程来运行外部命令,并与这些进程进行交互(比如获取命令...
Go语言中的raw string的使用方式: 反引号
在 Go 语言中,反引号(`)有两种常见的用途:字符串字面量(Raw String Literal)包的导入路径(Go Modules)下面我分别详细解释这两种用途。1. 字符串字面量(Raw ...
Go语言类型判断:断言
Go语言的断言(Assertion)主要体现在两种方面:类型断言和接口断言。它们是用于从一个接口类型中提取具体类型的机制。1. 类型断言(Type Assertion)类型断言用于将接口类型的变...
在Go语言中需要手动申请内存的变量类型
在Go语言中,以下几种类型的变量通常需要手动申请内存(同时这些变量在函数调用传参时都是指针传递):1. 切片(slice): 切片本身是一个引用类型,它只是一个指向底层数组的指针。如果你想创建一...
Go语言中的select语句的使用细节
Go select 语句详解:并发编程中的关键工具在 Go 语言中,select 语句是一个非常强大的工具,它使得在并发编程中操作多个 channel(通道)变得简单而直观。通过 select,...
Go语言中的reflect
Go 语言中的反射(Reflection)是指程序在运行时检查类型或修改对象值的能力。反射是 Go 语言的一个强大功能,它允许程序动态地操作对象的类型和数据。通过反射,我们可以在不知道具体类型的...
Go语言中的切片容量
一、什么是切片容量在go语言中,切片是动态数组,其结构定义如下:type SliceHeader struct { Data: uintprt Len: int C...