我正在使用我的第一个基本 udp 服务器,我想知道如何支持并发连接?我认为用我的代码一次只能获得一个连接来处理它,用一个 tcp 简单的服务器,事情似乎比这种情况更清楚,抛出一个 goroutine 来处理数据,但在这里我很丢失了,提前致谢。
func main() {
ListenerUDP("127.0.0.1", 1111)
}
func ListenerUDP(ip string, port int) {
buffer := make([]byte, 1024)
log.Println("Listener Started!")
addr := net.UDPAddr{
Port: port,
IP: net.ParseIP(ip),
}
conn, err := net.ListenUDP("udp", &addr)
if err != nil {
log.Fatalf("Error Listening:%s\n", err.Error())
panic(err)
}
defer conn.Close()
for {
_, remoteAddr, err := conn.ReadFromUDP(buffer[0:])
if err != nil {
log.Fatalf("Error:%s\n", err)
}
// Process data here? using a > go something()?
fmt.Printf("Data:%s From:%v\n", buffer, remoteAddr)
}
}
隔江千里
相关分类