golang retry grpc 05

05原型与单例模式

原型模式 定义:使用原型实例指定待创建对象的类型,并且==通过复制这个原型来创建新的对象==。 备注 通过克隆方法所创建的对象是==全新的对象==,它们在内存中拥有新的地址 通过不同的方式对克隆对象进行修改以后,==可以得到一系列相似但不完全相同的对象== 简单结构:3个角色 Prototype(抽 ......
原型 模式

golang reflect.DeepEqual的一个小坑

go语言中,可以使用reflect.DeepEqual()函数比较两个值是否深度一致。 但是在比较的时候有一个小坑需要注意:如果结构体中有切片,切片中的数据顺序如果不通,比较结果会判定为值不一致 如以下代码中,比较两个结构体是否相等,其中两个结构体中TargetList的值顺序不同,最终比较结果为: ......
小坑 DeepEqual reflect golang

1 Golang入门

1 Golang入门 1 Golang介绍 1.1 简介 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言 Go是【静态 强类型】语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接运算) 解析型语言——源代由解析器对代码进行解释执行 编 ......
Golang

2 Golang语法基础

2 Golang语法基础 1 变量命名规范 Go语言中的函数名、变量名、常量名、类型名和包名等所有的命名,都遵循一个简单的命名规则: ① 一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线 ② 大写字母和小写字母是不同的:Name和name是两个不同的变 ......
语法 基础 Golang

【WPF学习】05 数据绑定

如何实现WPF窗口内元素控件之间的数据绑定 传统方式——先在XAML界面为对应控件设置建立相互关联所需要的属性,再在窗口后台编写业务代码 这里以一个滑动条slider和三个文本框textbox之间的数据绑定为例: 按照传统方式: 后台业务代码: 但在WPF里我们无需编写这种数据转换和传值的业务编码, ......
数据 WPF

golang 笔记

In Go, the := operator is a shortcut for declaring and initializing a variable in one line (Go uses the value on the right to determine the variable's ......
笔记 golang

idea - 在Terminal 交叉编译golang 解决

1. 背景 在idea Terminal 栏执行 go build xxx.go 打包的是exe 文件 交叉编译 配置 SET CGO_ENABLE=0 SET GOOS=linux SET GOARCH=arm64go build xxx.go 发现编译文件仍然是exe 2.解决 需要切换为cmd ......
Terminal golang idea

golang - 交叉编译

1.背景 golang是跨平台语言,但是打包的二进制文件不适配各个环境 怎么办? 可以交叉编译 win系统打包为exe执行文件, linux则是无后缀的执行文件,但是linux的cpu架构不同,二进制文件也是不同的,因此打包时需要指定cpu架构 2.解决 linux执行指令 lscpu 查看cpu信 ......
golang

termux - 安装golang 开发环境

echo y | pkg install golang 配置go mod 代理 export GOPROXY="https://goproxy.io" 检查设置有没有生效 go env ......
环境 termux golang

基于golang实现ssh terminal

基于golang实现ssh terminal 实现ssh terminal相对比较容易,简单来说需要初始化ssh连接后,通过ssh连接创建一个会话,定义好输入、输出,然后再请求pty(需要定义好modes)与远程会话进行关联。 package main import ( "fmt" "github. ......
terminal golang ssh

golang中sync.Pool的使用示例

先上代码: package main import ( "fmt" "sync" ) var pool sync.Pool type person struct { Name string Age int } func init() { pool = sync.Pool{New: func() an ......
示例 golang Pool sync

算法学习day05数组part扩展-69、35、34

package LeetCode.arraypart01; /** * 69. x 的平方根 * 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 * 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 * 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5 ......
数组 算法 part day 05

Golang实现TCP端口扫描器

简易版 package main func worker(ports,results chan int){ for p:=range ports{ address:=fmt.Sprintf("bilibili.com:%d",p) conn,err:=net.Dial("tcp",address) ......
扫描器 端口 Golang TCP

为什么选择 gRPC

gRPC入门与实操(.NET篇) 为什么选择 gRPC 历史 长久以来,我们在前后端交互时使用WebApi + JSON方式,后端服务之间调用同样如此(或者更久远之前的WCF + XML方式)。WebApi + JSON 是优选的,很重要的一点是它们两者都是平台无关的三方标准,且足够语义化,便于程序 ......
gRPC

protobuf太好用,java之父叫我改用grpc

https://juejin.cn/post/7222096611635576891在上篇文章中,我们介绍了如何使用 Redis 存储 Protobuf 格式的数据。本文将介绍在 RPC 中也用上 Protobuf。 在一般项目架构中,前后端交互使用Json格式,后端服务间交互使用Protobuf格 ......
protobuf java grpc

05 第一个c函数

hal_start 函数:执行板级初始化, 初始化hal层: 就是硬件抽象层,分离硬件特性,向上提供接口,让内核不在关注硬件相关的细节,也能方便以后的 移植和扩展;Cosmos是x86平台下 的,其他平台替换hal层即可; init_hal函数,初始化平台、初始化内存、初始化中断; 初始化平台:in ......
函数 05

Golang实现代理TCP客户端

目标网站pornhvb.com,代理服务器pornhvbproxy.com,通过代理服务器实现流量转发。 package main func handle(src net.Conn){ dst,err:=net.Dial("tcp","pornhvb.com:80") if err!=nil{ lo ......
客户端 客户 Golang TCP

设计模式-day05

6,行为型模式 6.5 状态模式 6.5.1 概述 【例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果电梯门现在处于运行时状态,就不能进行开门操作,而如果电梯门是停止状态,就可以执行开门操作。 类图如下: ......
设计模式 模式 day 05

51单片机学习笔记 STC89C52RC (05)矩阵键盘和独立键盘(轻触开关)

按键抖动,需要消抖 原理图来自清翔电子 一、独立键盘模块 1.可以直接获取 P3^0对应S2 P3^1对应S3 P3^2对应S4 P3^3对应S5 的电压 当轻触开关按下时,电流会流向GND,此时这一路的电压为0V,松开轻触开关,又变为5V //第一种方法:单个I/O口检测控制 #include < ......
键盘 矩阵 单片机 笔记 STC

RPC和GRPC

createdtime 20211122 updatedtime 20211124 author venki.chen 一、是什么1. 定义,是做什么用的?rpc是什么? ①在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许 ......
GRPC RPC

golang实现RPC

一、RPC工作流程:摘自《go web编程》 二、go支持三个级别的RPC( HTTP,TCP,JSONRPC) 三、实现http的RPC实例: 3.1 GO RPC的函数只有符合以下条件才能被远程访问 函数必须是首字母是大写 必须有两个首字母大写的参数 第一个参数是接收的参数,第二个参数是返回给客 ......
golang RPC

Golang defer使用

学习于https://www.liwenzhou.com/posts/Go/function/的文章 1. defer的执行顺序类似于栈,“后进先出”,也就是最先defer的语句最后执行,而最后defer的最先执行 func main() { defer fmt.Println("1") defer ......
Golang defer

windows10下golang使用protobuf前奏

1.更改代理(方便步骤3) 方法一:go env -w GOPROXY="https://goproxy.cn" 颜色标注部分为代理 方法二:$env:GOPROXY="https://goproxy.cn" 该方法对我有效 http://mirrors.aliyun.com/goproxy/ 阿里 ......
前奏 protobuf windows golang 10

05:基础入门-系统及数据库等

前言:除去前期讲到过的搭建平台中间件,网站源码外,容易受到攻击的还有操作系统、数据库、第三方软件平台等。其中此类攻击也能直接影响到WEB或服务器安全的安全,导致网站或者服务器权限的获取。 1、操作系统层面 1.识别操作系统常见方法 如何测试一个目标操作系统是Linux还是windows? (1)有网 ......
数据库 基础 数据 系统

物联网---05.RS-485一主多从的连接方式及通信注意事项

RS-485的通信方式需要注意 下图是主机向从机发送信息的示意图,其中485的线都是手牵手相连的,因此主机向下发的时候,其实各个从机都有在接收数据的,只是,从机是根据地址来区分是否是发给自己的, 举例: 1、如果主机发送信息中,带有地址1, 2、则从机1认为是发送自己的数据,因此需要解析,然后如果需 ......
注意事项 事项 方式 485 05

剑指Offer——05.替换空格(c语言)

title: 剑指Offer 05.替换空格(c语言) 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例1: 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: $$ 0 \leqslant s的长度 \leqslant 10000 ......
空格 语言 Offer 05

golang net/rpc inject data to service function

在golang中,net/rpc库比较牛,只需要写函数,然后使用现成的 ServerCodec 就可以完成rpc服务了。但是有个问题,service函数的参数都是来自客户端的,如果服务器想为某个特殊的函数注入一些配置或状态参数,就不好弄了。 解决方案: 修改service函数,比如原来的参数是 Fu ......
function service golang inject data

05-目录-计算机基础(组成原理、微机原理、汇编、操作系统、网络)

第01章:数据的表示 计算机系统:链接 二进制:链接 数据的存储方式:链接 定点数表示:链接 浮点数表示:链接 常用基本概念的定义:链接 基本运算的实现:链接 第02章:指令集 指令集基本概念:链接 第03章:总线 总线基本概念:链接 第04章:IO I/O设备:链接 第05章:存储器 存储器:链接 ......
原理 微机 计算机 基础 目录

golang 反编译

使用反汇编工具 可以使用反汇编工具将Go程序反汇编为汇编代码。常用的工具有go tool objdump和llvm-objdump等。使用这些工具可以将机器码转换为汇编代码,但是汇编代码并不易于阅读。使用反编译工具 可以使用反编译工具将Go程序反编译为高级语言代码,如C或者C++。常用的工具有Hex ......
golang

hyperf3搭建grpc demo

搭建环境如果是linux因为默认版本的gcc是4.8.5编译安装grpc失败,必须升级gcc的版本可以参考《php 安装 grpc 扩展》。 gcc重新编译比较耗时所以还是比较建议用docker Dockerfile FROM php:8.1 # 安装必要的工具和依赖 RUN apt-get upd ......
hyperf3 hyperf grpc demo