为了账号安全,请及时绑定邮箱和手机立即绑定

使用 golang 创建多个 UDP 服务器

使用 golang 创建多个 UDP 服务器

Go
慕虎7371278 2022-09-05 15:27:55
我有一个创建UDP服务器所需的端口列表。我试过这个 aproachfor _, r := range routingTable.Routes {        if r.Metric == 0 {            wg.Add(1)            go func() {                conn, err := net.ListenUDP("udp4", &r.OriginPort)                if err != nil {                    log.Fatalf("Error occured starting the server: %s", err)                } else {                    log.Printf("Listening on port: %s", r.OriginPort.String())                }                defer conn.Close()                buffer := make([]byte, 1024)                for {                    conn.ReadFromUDP(buffer)                }            }()            wg.Wait()        }    }但它不起作用。我能做些什么来使它工作?
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

  1. 正如@CeriseLimon所指出的:不要在每次迭代时制作goroutine块,移动到循环之外wg.Wait()

  2. 不要忘记从每个 goroutine 中调用:在每个函数中添加一个调用wg.Done()defer wg.Done()

(由于您的听力歌罗提永不返回,因此第二点有点理论性...显然,添加一些代码来让你的听众做一些事情,如果可能的话,干净利落地退出)


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信