Server
package main
import (
"net"
"fmt"
)
func main() {
sAddr, err := net.ResolveUDPAddr("udp", ":6666")
if err != nil {
fmt.Print(err)
return
}
server, err := net.ListenUDP("udp", sAddr)
if err != nil {
fmt.Print(err)
return
}
data := make([]byte, 1024)
for {
n, cAddr, _ := server.ReadFromUDP(data)
fmt.Print(cAddr.String(), " ", string(data[:n]))
server.WriteToUDP([]byte("server"), cAddr)
}
}
Client
package main
import (
"sync"
"net"
"fmt"
)
func main() {
wg := sync.WaitGroup{}
wg.Add(1)
go func(host string) {
cAddr, err := net.ResolveUDPAddr("udp", ":7777")
if err != nil {
fmt.Print(err)
wg.Done()
return
}
client, err := net.ListenUDP("udp", cAddr)
if err != nil {
fmt.Print(err)
wg.Done()
return
}
sAddr, err := net.ResolveUDPAddr("udp", host)
if err != nil {
fmt.Print(err)
wg.Done()
return
}
client.WriteToUDP([]byte("client"), sAddr)
data := make([]byte, 1024)
n, rAddr, _ := client.ReadFromUDP(data)
fmt.Print(rAddr.String(), " ", string(data[:n]))
wg.Done()
}("45.63.94.102:6666")
wg.Wait()
}