Client
package main
import (
"net"
"fmt"
)
func main() {
sip := net.ParseIP("127.0.0.1")
srcAddr := &net.UDPAddr{IP: net.IPv4zero, Port:0}
dstAddr := &net.UDPAddr{IP: sip, Port: 9981}
conn, err:= net.DialUDP("udp", srcAddr, dstAddr)
if err!= nil {
fmt.Printf(err.Error())
}
defer conn.Close()
data := make([]byte, 1024)
conn.Write([]byte("hello"))
n, err:= conn.Read(data)
fmt.Printf("(%s)<%s> \n",data[:n], conn.RemoteAddr())
}
server
package main import ( "net" "fmt" ) func main(){ listener, err := net.ListenUDP("udp",&net.UDPAddr{IP:net.ParseIP("127.0.0.1"),Port:9981}) if err != nil { fmt.Println(err) return } fmt.Printf("local:<%s> \n", listener.LocalAddr().String()) data := make([]byte, 1024) for{ n, remoteAddr, err := listener.ReadFromUDP(data) if err != nil { fmt.Printf("err: %s", err) } fmt.Printf("<%s> %s\n", remoteAddr, data[:n]) _, err = listener.WriteToUDP([]byte("world"), remoteAddr) if err != nil{ fmt.Printf(err.Error()) } } }