首页 > 代码库 > go语言net包udp socket的使用
go语言net包udp socket的使用
udp与tcp的不同在于客户端请求方式不同,udp缺少Accept函数。
一个简单的udp客户端:
package main;import ( "net" "log" "fmt")func chkError(err error) { if err != nil { log.Fatal(err); }}func main() { //获取udpaddr udpaddr, err := net.ResolveUDPAddr("udp4", "127.0.0.1:8080"); chkError(err); //连接,返回udpconn udpconn, err2 := net.DialUDP("udp", nil, udpaddr); chkError(err2); //写入数据 _, err3 := udpconn.Write([]byte("client\r\n")); chkError(err3); buf := make([]byte, 256); //读取服务端发送的数据 _, err4 := udpconn.Read(buf); chkError(err4); fmt.Println(string(buf));}
udp服务端代码:
package main;import ( "net" "log" "fmt")func chkError(err error) { if err != nil { log.Fatal(err); }}func clientHandle(conn *net.UDPConn) { defer conn.Close(); buf := make([]byte, 256); //读取数据 //注意这里返回三个参数 //第二个是udpaddr //下面向客户端写入数据时会用到 _, udpaddr, err := conn.ReadFromUDP(buf); if err != nil { return; } fmt.Println(string(buf)); conn.WriteToUDP([]byte("hello,client \r\n"), udpaddr);}func main() { udpaddr, err := net.ResolveUDPAddr("udp4", "127.0.0.1:8080"); chkError(err); //监听端口 udpconn, err2 := net.ListenUDP("udp", udpaddr); chkError(err2); //udp没有对客户端连接的Accept函数 for { clientHandle(udpconn); }}
go语言net包udp socket的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。