golang/net包与epoll
- linux下go的网络包底层如tcp也是采用epoll来实现, 你可以从
Accept
方法一路追下去, 追到尽头你会看到internal/poll/fd_poll_runtime.go
里面这些在runtime实现的方法:
- 此时到
src/runtime/netpoll.go
就能看到上述这些方法的实现, 再往下追下去就可以看到各个平台的具体实现了, 如netpoll_epoll.go
netpoll_kqueue.go
netpoll_windows.go
, 看到netpoll_epoll.go
里面的epollcreate, epollctl, epollwait
了吧, 多么熟悉的几个函数!
- 虽然net包底层用epoll实现了, 但是实际我们在用tcp还是开goroutine来serve
- net包就是推荐我们用goroutine来玩tcp, 应对大部分场景妥妥的
- 面对比较变态的场景并发量贼高时, goroutine尽管只有消耗2k~8k的栈空间, 连接一多还是耗不起, 此时就只能用一些黑魔法来使用epoll了
- 具体怎么玩可以参照 https://github.com/mailru/easygo
阅读更多OTP动态口令及底层实现
- 最近用到了OTP, 遂mark一下
- 我们常用的那种倒计时验证码就是TOTP, 既不是叫OTP也不是叫MFA, 经常听有人这么说所以提一嘴
- 动态口令验证可以看作是服务端和客户端之间通过约定相同的算法来实现验证功能, 也即你在客户端看到的动态口令是客户端通过算法生成的无需请求服务端获取
阅读更多Py小玩具-简易截图
- 有时没开微信或QQ的时候想立即截个图啥的挺蛋疼的, 故自己捣鼓一个
- 简单干净快速, 无界面, 运行即截图
- 运行
easyshot.py
直接开启区域截图, 截完图自动保存到桌面, 然后退出进程
- 截图的时候框选完区域后可以
双击
或Enter
完成截图, 中途可以按Esc
放弃截图
阅读更多