This is a creation in Article, where the information may have evolved or changed.
Golang UDP server-side client Example
Service side:
package mainimport (" FMT "" NET ") Func main () {//Create listener socket, err: = NET.L ISTENUDP ("Udp4", &net. udpaddr{ip:net. IPV4 (0, 0, 0, 0), port:8080,}) if err! = Nil {fmt. PRINTLN ("Listener failed!", err) return} defer socket. Close () for {//Read data: = Make ([]byte, 4096) read, remoteaddr, err: = socket. READFROMUDP (data) if err! = Nil {fmt. PRINTLN ("Read data failed!", err) continue} FMT. Println (read, remoteaddr) fmt. Printf ("%s\n\n", data)//send senddata: = []byte ("Hello client!") _, Err = socket. WRITETOUDP (SendData, remoteaddr) if err! = Nil {return FMT. Println ("Failed to send data!", Err)}}}
client:
Package Mainimport ( "FMT" "NET") Func main () { //Create connection socket, err: = Net. DIALUDP ("UDP4", Nil, &net. udpaddr{ IP: net. IPV4 (192, 168, 1, 103), port:8080, }) if err! = Nil { FMT. Println ("Connection Failed!", err) return } defer socket. Close () //Send data senddata: = []byte ("Hello server!") _, Err = socket. Write (senddata) if err! = Nil { FMT. PRINTLN ("Send data Failed!", err) return } //Receive data : = Make ([]byte, 4096) read, remoteaddr, err: = Socket. READFROMUDP (data) if err! = Nil { FMT. PRINTLN ("Read data failed!", err) return } fmt. Println (read, remoteaddr) FMT. Printf ("%s\n", Data)}