
检查以下示例以通过UDP进行客户端/服务器通信。sendResponse例程用于将响应发送回客户端。
udpclient.go
package mainimport ( "fmt" "net" "bufio")func main() { p := make([]byte, 2048) conn, err := net.Dial("udp", "127.0.0.1:1234") if err != nil { fmt.Printf("Some error %v", err) return } fmt.Fprintf(conn, "Hi UDP Server, How are you doing?") _, err = bufio.NewReader(conn).Read(p) if err == nil { fmt.Printf("%sn", p) } else { fmt.Printf("Some error %vn", err) } conn.Close()}udpserver.go
package mainimport ( "fmt" "net" )func sendResponse(conn *net.UDPConn, addr *net.UDPAddr) { _,err := conn.WriteToUDP([]byte("From server: Hello I got your mesage "), addr) if err != nil { fmt.Printf("Couldn't send response %v", err) }}func main() { p := make([]byte, 2048) addr := net.UDPAddr{ Port: 1234, IP: net.ParseIP("127.0.0.1"), } ser, err := net.ListenUDP("udp", &addr) if err != nil { fmt.Printf("Some error %vn", err) return } for { _,remoteaddr,err := ser.ReadFromUDP(p) fmt.Printf("Read a message from %v %s n", remoteaddr, p) if err != nil { fmt.Printf("Some error %v", err) continue } go sendResponse(ser, remoteaddr) }}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)