udp_client
package main
import (
"fmt"
"net"
)
const (
UDP = "udp"
)
func main() {
conn, err := net.Dial(UDP, "127.0.0.1:3600")
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
for {
msg := ""
fmt.Scanf("%s\n", &msg)
if msg == "STOP" {
break
}
conn.Write([]byte(msg))
buff := make([]byte, 2048)
n, _ := conn.Read(buff)
fmt.Printf("recv:%s\n", string(buff[0:n]))
}
}
udp_server
package main
import (
"fmt"
"net"
"strings"
)
const (
UDP = "udp"
)
func main() {
s, err := net.ResolveUDPAddr(UDP, ":3600")
if err != nil {
fmt.Println(err)
return
}
conn, err := net.ListenUDP(UDP, s)
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
buff := make([]byte, 2048)
for {
n, raddr, err := conn.ReadFromUDP(buff)
if err != nil {
fmt.Println(err)
break
}
if strings.TrimSpace(string(buff[0:n])) == "STOP" {
fmt.Println("Stop server.")
break
}
fmt.Printf("[recv]:%s. from:%s\n", string(buff[0:n]), raddr.String())
msg := "I received your msg."
conn.WriteToUDP([]byte(msg), raddr)
fmt.Printf("[send]:%s.\n", msg)
}
}