Golang
文章平均质量分 84
CrazyDragon_King
纸上得来终觉浅,绝知此事要躬行。
展开
-
基于 Docker 的 go grpc quickstart
工作之后一直使用的 RPC 框架是 Apache 的 thrift,现在发现 grpc 更流行,所以也要学习一下,先来简单的跑一下 demo。在本地安装运行也很方便,不过因为有了 docker,所以在 docker 里面安装运行隔离性更好,顺便也提升 docker 命令行的熟练度。原创 2024-04-04 16:03:22 · 562 阅读 · 0 评论 -
基于 Gin 的 HTTP 代理上网行为记录 demo
前端时间写了好几篇使用 Gin 框架来做 HTTP 代理 demo 的文章,然后就想着做一个记录上网行为的小工具,就是简单记录看看平时访问了什么网站(基于隧道代理的,不是中间人代理,所以只能记录去了哪里,不能记录干了什么)。不过因为编译问题一直没有解决,我又不想重新在 Windows 上安装 Golang 的开发环境,所以就把它搁置了。最近正好把那个交叉编译的问题解决了,所以就把这个博客也发出来吧。原创 2023-12-16 14:55:48 · 276 阅读 · 0 评论 -
Golang在 Docker 中交叉编译 Windows
所谓编译就是把代码变成二进制可执行文件的过程。代码就是一段 Unicode 字符,它是肯定可以跨平台的,但是最终运行的并不是它(最终运行的是代码的编译产物)。我们平时写完一个小程序,直接就点击运行了。但是这里的代码其实是不能直接运行的(编译型语言),它内部还是要进行一个编译的过程,把代码转成目标平台的二进制可执行文件。这个二进制可执行文件是和操作系统和目标架构绑定的,所以你换一个操作系统或者架构它就不能运行了。原创 2023-12-16 01:17:17 · 320 阅读 · 0 评论 -
基于 Gin 的 HTTP 中间人代理 Demo
这篇博客和上一篇博客之间已经隔了好久了。因为理解这个中间人代理的过程遇到了困难,再加上时间不是很充足,也就没有继续写这个主题的内容。最近刚好又有了时间了,所以就集中时间看了很多内容,测试代码(因为 TSL 发生了错误基本上看不懂什么意思,感觉自己掌握的知识和工具还是太少了,很多错误只能束手无策了),也算是对这个东西有了一个新的理解。我其实还是更喜欢盲转发的代理,因为那样实现起来更简单,可以做一些上网行为统计的小工具玩一玩。原创 2023-12-09 18:44:39 · 514 阅读 · 0 评论 -
golang-bufio 缓冲扫描
前面两篇博客,介绍了bufio包中的缓冲读和写(bufio.go),下面再来介绍一下缓冲扫描(scan.go)。这个扫描的是用来对缓存读的更高级封装,提供了一些更易用的方法。原创 2023-09-10 18:42:26 · 588 阅读 · 2 评论 -
golang-bufio 缓冲写
接下来会介绍缓冲写的主要方法的作用,并且会添加一些个人的注释。如果有不对的地方,欢迎指正。原创 2023-09-03 18:56:21 · 1190 阅读 · 0 评论 -
golang-bufio 缓冲读
好了,到这里就结束了。这里至少Reader相关的部分,后面还会继续Writer相关的部分。不过,目前还没有特别好的记录方式,只是大致挑几个代码贴出来,写一些自己的理解,然后配一些示意图,再加上一些测试代码。这篇博客不是为了说明这个包是怎么使用的,而是为什么要用它,以及它的一些实现的细节。现这样写吧,以后再探索是不是有更好的方式。原创 2023-08-29 00:48:48 · 591 阅读 · 0 评论 -
http 自动跳转 https
这里大致的思路是:监听两个端口,一个是端口提供 http 服务(只有一个根路径),一个提供 https 服务(正常的应用服务路径),然后如果有人访问了 http 的根路径,那么将其转发到 https 服务的根路径上即可。因为之前访问过了,浏览器会记住你访问过的网址的,这里的区别在于匹配到网址后,出现了百度的 logo 图标。我并没有输入协议,所以浏览器默认是会访问 http 网站的,但是最终的结果是访问了 https 网站。我前面说了这是做了跳转,但是这种说法是很模糊的,你并不知道实际上是使用了什么技术?原创 2023-02-12 23:22:52 · 299 阅读 · 0 评论 -
满二叉树的逻辑结构表示
最近复习了堆排序的内容, 之前学习过的东西忘了一个精光, 感觉但是也多是死记硬背, 没有很好的去探索为什么这样做. 所以, 在思考。原创 2022-10-29 15:41:12 · 448 阅读 · 0 评论 -
树的创建、遍历及可视化
许久不复习数据结构了,对于知识点都有些遗忘了,想着来写一些树的遍历、查找,发现连创建一棵树都快忘记了。不过幸好,还是可以看懂别人的代码,还算是有一些基础的。最终也写出来了。因为觉得这样太过于麻烦了,所以,我就在思考一个问题:如何简化这个过程呢? 所以这篇博客就由此而生了,这里主要会讲述三个方面的知识点:简化树的创建树的几个常见算法树的可视化简化树的创建我觉得目前的方式创建 一个棵树,太过于麻烦了。通常我们创建的一棵树,也只是在内存中短暂的存在了一段时间,所以我想可以使用其它的方式,让树可以持久原创 2022-03-07 00:19:57 · 10511 阅读 · 0 评论 -
基于百度翻译api的命令行翻译助手
前言:最近总是需要浏览英语相关的内容,也不是全部都能认识的。所以查单词就成了一个需求,而且也不是只查一个,因为经常接触英语相关的内容。而且,查询了大量的单词,所以对查询的单词进行回顾也成了一个需求。因为单词查过很快就忘记了,所以要找时间把查询的单词都拿来集中学习一下,也算做是一个学习英语的努力了。基于此,我就想要开发一个使用的小工具,它需要满足两点:查询方便,因为会频繁从进行查询;查询结果可回溯,因为要找时间集中学习。第一点很容易满足了,第二点的话,我经常使用网页翻译,所以都无法查看历史记录(或者原创 2021-12-28 19:40:05 · 264 阅读 · 0 评论 -
Golang读取单行超长的文本
前言:最近在探索用Go来读取文件,读取文本时发现,对于单行超长的文本,我的Go代码无法处理。经过查阅才发现,Go提供的Scanner无法读取单行超长文本文件。我这里就来总结一下问题的发现和解决过程。1.问题复现首先注释main函数里面的内容,执行 CreateBigText 函数,它会创建一个含有3行内容的文件,第一行是一个长度超过100KB的行。然后解决main函数的注释,尝试执行代码,会发现只有一行错误信息:package mainimport ( "bufio" "bytes" "原创 2021-12-20 21:45:53 · 1546 阅读 · 0 评论