服务端:
package main
import (
"fmt"
"net"
"os"
"time"
)
func handleClient(conn *net.UDPConn) {
var buf [512]byte
_, addr, err := conn.ReadFromUDP(buf[0:])
if err != nil {
return
}
fmt.Printf("Received: %s\n", string(buf[0:]))
daytime := "今日:" + time.Now().String()
conn.WriteToUDP([]byte(daytime), addr)
}
func main() {
service := ":1200"
udpAddr, err := net.ResolveUDPAddr("udp4", service)
checkError(err)
conn, err := net.ListenUDP("udp", udpAddr)
for {
handleClient(conn)
}
}
func checkError(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "错误:%s", err.Error())
os.Exit(1)
}
}
客户端:
package main
import (
"fmt"
"net"
"os"
)
func main() {
// if len(os.Args) != 2 {
// fmt.Fprintf(os.Stderr, "用法:%s host:port ", os.Args[0])
// os.Exit(1)
// }
// service := os.Args[1]
service := "127.0.0.1:1200"
udpAddr, err := net.ResolveUDPAddr("udp4", service)
checkError(err)
conn, err := net.DialUDP("udp", nil, udpAddr)
checkError(err)
_, err = conn.Write([]byte("do anything you want"))
checkError(err)
var buf [512]byte
n, err := conn.Read(buf[0:])
checkError(err)
fmt.Println(string(buf[0:n]))
os.Exit(0)
}
func checkError(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "错误:%s", err.Error())
os.Exit(1)
}
}
package main
import (
"fmt"
"net"
"os"
)
func main() {
// if len(os.Args) != 2 {
// fmt.Fprintf(os.Stderr, "用法:%s host:port ", os.Args[0])
// os.Exit(1)
// }
// service := os.Args[1]
service := "127.0.0.1:1200"
udpAddr, err := net.ResolveUDPAddr("udp4", service)
checkError(err)
conn, err := net.DialUDP("udp", nil, udpAddr)
checkError(err)
_, err = conn.Write([]byte("do anything you want"))
checkError(err)
var buf [512]byte
n, err := conn.Read(buf[0:])
checkError(err)
fmt.Println(string(buf[0:n]))
os.Exit(0)
}
func checkError(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "错误:%s", err.Error())
os.Exit(1)
}
}