![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
拙劣的魔法
专注 坚持!
展开
-
golang int与byte数组之间的转换
golang byte[] 与int 相互转换原创 2022-05-24 21:19:07 · 3791 阅读 · 2 评论 -
使用golang 编写一个websocket 库
func main() { h := NewWebsocket() h.OnConnect(func(ic connection.IWsCli) { ic.Write([]byte("heelo")) fmt.Printf("链接成功 \n") }) h.onReadEvent(func(c ctx.Context) { fmt.Printf("recv %s \n", string(c.Req.Bodys)) c.Resp.Write([]byte("zhangsan")).原创 2022-04-25 14:34:06 · 2116 阅读 · 0 评论 -
用golang.实现一个http代理?
项目地址原创 2022-04-06 23:51:18 · 295 阅读 · 0 评论 -
实现oj评测机
OJ评测机原创 2022-02-19 12:06:18 · 1351 阅读 · 0 评论 -
golang gc回收机制
v1.3 前使用标记清除算法 (缺点 让程序暂停会出现卡顿)暂停业务逻辑,找出不可达和可达对象 stw开始标记 标记所有可达对象清除不可达对象停止暂停,重复此过程,直到进程结束三色标记法创建的所有对象都为白色gc 回收时遍历第一层节点,将节点标记为灰色遍历灰色节点下一层,将可达对象标记为灰色,当前灰色节点标记为黑色重复直到随后一层将白色对象清除如何三色标记不加stw 保护,可能会出现对象丢失灰色对象丢失了白色对象上一层的灰色对象又引用了白色对象为了解决使用全局stw原创 2021-12-31 17:26:17 · 285 阅读 · 0 评论 -
golang 实现tcp 扫描器
func nmap(startPort int, EndPort int, url string) { ports := []int{} var wait sync.WaitGroup wait.Add(1) for i := startPort; i < EndPort; i++ { go func(p int) { host := fmt.Sprintf("%s:%d", url, p) _, re := net.DialTimeout("tcp", host, time.原创 2021-12-23 18:09:07 · 1348 阅读 · 0 评论