请各位看官提提意见 UDP Server的例子
package main
import (
"fmt"
"net"
"os"
"time"
)
func handleClient(conn *net.UDPConn) {
var buf [512]byte
n, addr, err := conn.ReadFromUDP(buf[0:])
if err != nil {
return
}
fmt.Println(string(buf[0:]))
daytime := time.Now().String()
fmt.Println(n, addr)
conn.WriteToUDP([]byte(daytime), addr)
}
func checkError(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "Fatal error:%s", err.Error())
os.Exit(1)
}
}
func main() {
service := ":1200"
udpAddr, err := net.ResolveUDPAddr("up4", service)
checkError(err)
conn, err := net.ListenUDP("udp", udpAddr)
checkError(err)
for {
handleClient(conn)
}
}
<a href="/user/Hubery" title="@Hubery">@Hubery</a> 这样的做法貌似是不对的,我换了另一种方式,把Handle函数里面的内容拆开了,我测试了一下,这样是比较合理的, 如
func handle(){
xxxx
go subhandle();
}
#3
更多评论
for{
conn,err := net.ListenUDP("udp",udpAddr)
if err==nil{
go handleClient(conn)
}
}
#2