Files
4566704 6904133565 feat(listen): 自 go-hua 迁入监听器封装
- net.Listener 统一封装与 Close 解除 Accept 阻塞, 附测试、例程与 README
2026-09-20 12:25:35 +08:00
..

listen

标准库 net.Listener 的简单封装,提供统一的监听器接口与关闭语义。

迁移自 go-hua/listen,代码保持原样。

用法

import "git.zeroonesoft.cn/golib/zogo/listen"

l, err := listen.NewListen("tcp", ":9000")
if err != nil { ... }
defer l.Close()

for {
    c, err := l.Accept() // Close 后 Accept 立即解除阻塞返回错误
    if err != nil { break }
    go handle(c)
}

完整可运行例程:examples/listen/main.go

注意

  • Close 后阻塞中的 Accept 会立即返回错误,无需额外唤醒逻辑。
  • 新代码若无需扩展点,直接用标准库 net.Listen 亦可。