go-gprc gprc go

go语言解析HTTP包生成代码发送HTTP数据包

### #### 输入是从fiddler捕获的HTTP数据包 ```http GET https://bbs.kanxue.com/ HTTP/1.1 Host: bbs.kanxue.com Connection: keep-alive Upgrade-Insecure-Requests: 1 U ......
HTTP 语言 代码 数据

Go应用性能优化的8个最佳实践,快速提升资源利用效率!

> 作者|Ifedayo Adesiyan > 翻译|Seal软件 > 链接|https://earthly.dev/blog/optimize-golang-for-kubernetes/ 优化服务器负载对于确保运行在 Kubernetes 上的 Golang 应用程序的高性能和可扩展性至关重要。 ......
效率 性能 资源

python、go、node的ja3指纹实现(转)

一.初识 1.什么是ja3相信大家都有所耳闻,这里就不做太多概述,简单来讲就是就是基于tls/ssl协议的客户端指纹特征识别技术。 2.绕过ja3的四种方法 1.访问ip指定host绕过waf 2.代理中转请求(go版本有实现可以去了解下) 3.更换request工具库 4.魔改requests 3 ......
指纹 python node ja3 ja

GO 集合 map 使用总结

转载请注明出处: Go语言的集合称为映射(map),它是一种无序的键值对(key-value)的集合,集合是通过键(key)来快速检索值(value)的,键(key)类似于索引,它指向值(value)的数据。 1.定义 map 变量语法 var m map[keyType]valueType // ......
map GO

UVA11090 Going in Cycle!!题解

## 题目大意 给定一个N个点M条边的带权有向图,求平均值最小的回路。 ## 解法 看到这种题目,~~喜欢打暴力的我~~一下就想到:遍历整个图,找到每一个环,然后算出它们的平均值,最后比较出最小值。然而,呃...,会T飞... **既然我们不能暴力找最小值,那还有什么别的办法吗?** 我们只需要输出 ......
题解 11090 Going Cycle UVA

go常用操作

使用go mod 飞速下载 gin,解决go get下载包失败的问题 配置七牛云的代理:go env -w GOPROXY=https://goproxy.cn,direct 更新mod包依赖:go mod tidy,此时go.mod就出现了我们需要的依赖包: ......
常用

go正则匹配

package modelimport ( "database/sql/driver" "encoding/json" "fmt" "regexp")type CmdFilter struct { Command string `json:"command" comment:"需要过滤的ssh命令 ......
正则

Go语言中的原子操作

# 1. 引言 在并发编程中,多个协程同时访问和修改共享数据时,如果没有使用适当的机制来防止并发问题,这个时候可能导致不确定的结果、数据不一致性、逻辑错误等严重后果。 而原子操作是解决并发编程中共享数据访问问题的一种常见机制。因此接下来的文章内容将深入介绍原子操作的原理、用法以及在解决并发问题中的应 ......
原子 语言

Go 设计模式|组合,一个对数据结构算法和职场都有提升的设计模式

Go 设计模式|组合,一个对数据结构算法和职场都有提升的设计模式 原创 KevinYan11 网管叨bi叨 2023-01-16 08:45 发表于北京 收录于合集#用Go学设计模式24个 大家好,我是每周在这里陪你进步的网管~,这次我们继续设计模式的学习之旅。本次要学习的是组合模式,这个模式呢,平 ......

windows ,go powershell 测试并且性能分析

#benchamark 并且性能分析 `go test -run none -bench . -benchmem -cpuprofile cpu.prof -memprofile mem.prof; Start-Job { go tool pprof -http=:10000 .\cpu.prof ......
性能分析 powershell 性能 windows go

go语言函数

Go函数 由若干语句组成的语句块、函数名称、参数列表、返回值构成,它是组织代码的最小单元 完成一定的功能 函数的作用 结构化编程对代码的最基本的封装,一般按照功能组织一段代码 封装的目的为了复用,减少冗余代码 代码更加简洁美观、可读易懂 函数的分类 内建函数,如make、new、panic等 库函数 ......
函数 语言

深入分析Go语言与C#的异同

> 摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:[葡萄城官网](https://www.grapecity.com.cn/),葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 # 前言 为了更加深入地介绍Go语言以及与C\#语言的比较,本文将会从多个维度出发进行详细的 ......
异同 语言

go语言hash表

map特性 长度可变;存储的元素是key-value对(键值对),value可变 key无序不重复 不可索引,需要通过key来访问;不支持零值可用,也就是说,必须要用make或字面常量构造;引用类型; 哈希表 哈希算法 哈希Hash算法特征 y = hash(x),给定一个x一定得到一个y值 x的范 ......
语言 hash

深入理解Go语言接口

# 1. 引言 接口是一种定义了软件组件之间交互规范的重要概念,其促进了代码的解耦、模块化和可扩展性,提供了多态性和抽象的能力,简化了依赖管理和替换,方便进行单元测试和集成测试。这些特性使得接口成为构建可靠、可维护和可扩展的软件系统的关键工具之一。 在现代编程语言中,接口是不可或缺的一个重要特性。本 ......
接口 语言

GO中字符串操作和转换简介

[toc] `go`中字符串是一种基本类型(string),是一个**不可改变的UTF-8**字符序列: - 一个ASCII码占用1个字节(8位); - 其它字符根据需要占用2-4个字节; # 字符串 字符串创建后,就不可修改; # 声明与初始化 `go`支持两种类型的字符串字面量: - 解释型字符 ......
字符串 字符 简介

Go 语言之 Shutdown 关机和fvbock/endless 重启

# Go 语言之 Shutdown 关机和fvbock/endless 重启 Shutdown 源码 ```go // Shutdown gracefully shuts down the server without interrupting any // active connections. ......
Shutdown endless 语言 fvbock Go

在Mac上编译可运行在Linux, Windows上的GO程序

编译运行在 amd64位 linux系统 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build 编译运行在 amd64位 windows系统 CGO_ENABLED=0 GOOS=windows go build ......
上编 Windows 程序 Linux Mac

GO通道:无缓冲通道与缓冲通道

转载请注明出处: 1.通道定义 在多个协程之间进行通信和管理,可以使用 Go 语言提供的通道(Channel)类型。通道是一种特殊的数据结构,可以在协程之间进行传递数据,从而实现协程之间的通信和同步。多个协程可以同时读写同一个通道,通过通道来进行数据的传递和共享。 通道遵循先入先出(First In ......
通道

GO 协程

转载请注明出处: 线程是进程中的一个实体,被系统独立调度和分派的基本单位。线程自己不拥有系统资源,只拥有运行中必不可少的资源。同一进程中的多个线程并发执行,这些线程共享进程所拥有的资源。 协程是一种比线程更加轻量级的存在,重要的是,协程不被操作系统内核管理,协程完全是由程序控制的,不需要手动创建和管 ......
GO

Go 语言之 Viper 的使用

# Go 语言之 Viper 的使用 ## Viper 介绍 [Viper](https://github.com/spf13/viper): ### 安装 ```bash go get github.com/spf13/viper ``` ### Viper 是什么? Viper 是一个针对 Go ......
语言 Viper Go

go语言tcp编程学习

# TCP编程 ## 1、网络编程分类 包括TCPsocket编程(底层基于tcp/ip协议)和b/s结构的http编程(使用的是http协议,但是底层是tcp socket实现的) 资料:尚硅谷的TCP资料(3卷),可以咸鱼找下资料看下 ## 2 TCPsocket编程 windows查看端口密码 ......
语言 tcp

GO 项目依赖管理:go module总结

转载请注明出处: 1.go module介绍 go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用 go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等 使用go module之后我们可不用将代码放置在src下 使用 g ......
项目 module GO

go 接口循环方法

type Call interface { String() string}type Cn struct {}type En struct {}func Newcn() Call { return &Cn{}}func (c *Cn) String() string { b, _ := json.M ......
接口 方法 go

Go 中的格式化字符串`fmt.Sprintf()` 和 `fmt.Printf()`

在 Go 中,可以使用 `fmt.Sprintf()` 和 `fmt.Printf()` 函数来格式化字符串,这两个函数类似于 C 语言中的 `scanf` 和 `printf` 函数。 ## `fmt.Sprintf()` `fmt.Sprintf()` 函数返回一个格式化后的字符串,而不是将其打 ......
字符串 fmt 字符 Sprintf 格式

Go语言学习总结

#### 1. 跳出/执行下一次循环。 ``` {标签名}: for true { ... for true { ... break/continue {标签名} //默认不加标签,则跳出最近一层循环。加了标签可以跳出标签定义处所在循环 } } ``` #### 2. map的使用注意项。 因为ma ......
语言学习 语言

使用go标准库发送邮件

在学习go语言的过程中,发现smtp邮件服务也在go语言的标准库中支持,所以写了一个小demo测试是否能够真的发送邮件,代码如下: ```go package main import ( "crypto/tls" "log" "net/smtp" ) const ( smtpServer = "sm ......
邮件 标准

Go 语言之在 gin 框架中使用 zap 日志库

# Go 语言之在 gin 框架中使用 zap 日志库 ### gin 框架默认使用的是自带的日志 #### `gin.Default()`的源码 Logger(), Recovery() ```go func Default() *Engine { debugPrintWARNINGDefault ......
框架 语言 日志 gin zap

[Go] 理解 Go 的 unintptr、unsafe.Pointer、*type

# 理解 Go 的 unintptr、unsafe.Pointer、*type ## 概念 - `*type`: 用于传递对象地址, 无法进行指针运算 - `unsafe.Pointer`: 通用指针, 用于表示任意类型的指针, 无法进行指针运算, 无法读取存储的值,可作为对象引用 - 任意类型的指 ......
unintptr Pointer unsafe Go type

Go设计模式实战--用状态模式实现系统工作流和状态机

大家好,这里是每周都在陪你进步的网管~!本节我们讲一个行为型的设计模式--状态模式,并通过Golang示例进行实战演示。 状态模式(State Pattern)也叫作状态机模式(State Machine Pattern)状态模式允许对象的内部状态发生改变时,改变它的行为,就好像对象看起来修改了它实 ......
状态 模式 工作流 设计模式 实战

通过安装GVM 安装GO 操作步骤

转载请注明出处: 1.GVM GVM是Go Version Manager的缩写,是一个用于管理Go语言版本的工具。通过GVM,我们可以轻松地安装、切换和卸载不同版本的Go语言。GVM会在用户的home目录下创建一个名为.gvm的隐藏文件夹,其中包含已安装的Go版本和相关的配置文件。 通过GVM安装 ......
步骤 GVM