加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
go_udp_server.go 1.14 KB
一键复制 编辑 原始数据 按行查看 历史
package main
import (
"fmt"
"net"
"os"
)
//UDP服务端 没有与客户端建立连接 并不知道客户端是否接收到
func main() {
//申明端口
service := ":5000"
//注册udp4端口地址
udpAddr, err := net.ResolveUDPAddr("udp4", service)
checkErr(err)
//设置监听接口
conn, err := net.ListenUDP("udp", udpAddr)
checkErr(err)
for {
handleClient(conn)
}
}
/**
* @Author: YaoWang
* @DateTime: 2017-04-20 14:15:05
* @Description: 检验错误
*/
func checkErr(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
os.Exit(1)
}
}
/**
* @Author: YaoWang
* @DateTime: 2017-04-20 14:15:37
* @Description: 等待客户端连接
*/
func handleClient(conn *net.UDPConn) {
//延时关闭连接
defer conn.Close()
var buf [512]byte
for { //读取数据 n数据长度 rAddr数据来源地址 err错误
n, rAddr, err := conn.ReadFromUDP(buf[0:])
if err != nil {
return
}
fmt.Println("Receive from client", rAddr.String(), string(buf[0:n]))
//返回给客户端数据
_, err2 := conn.WriteToUDP([]byte("Welcome client!"), rAddr)
if err2 != nil {
return
}
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化