golang实现简单的udp协议服务端与客户端示例
本文实例讲述了golang实现简单的udp协议服务端与客户端。分享给大家供大家参考,具体如下:
其实udp没有什么服务端和客户端的概念了,只是一个发一个收而已,只是这样较方便能识别和理解.
服务端:
packagemain import( "fmt" "net" ) funcmain(){ //创建监听 socket,err:=net.ListenUDP("udp4",&net.UDPAddr{ IP: net.IPv4(0,0,0,0), Port:8080, }) iferr!=nil{ fmt.Println("监听失败!",err) return } defersocket.Close() for{ //读取数据 data:=make([]byte,4096) read,remoteAddr,err:=socket.ReadFromUDP(data) iferr!=nil{ fmt.Println("读取数据失败!",err) continue } fmt.Println(read,remoteAddr) fmt.Printf("%s\n\n",data) //发送数据 senddata:=[]byte("helloclient!") _,err=socket.WriteToUDP(senddata,remoteAddr) iferr!=nil{ return fmt.Println("发送数据失败!",err) } } }
客户端:
packagemain import( "fmt" "net" ) funcmain(){ //创建连接 socket,err:=net.DialUDP("udp4",nil,&net.UDPAddr{ IP: net.IPv4(192,168,1,103), Port:8080, }) iferr!=nil{ fmt.Println("连接失败!",err) return } defersocket.Close() //发送数据 senddata:=[]byte("helloserver!") _,err=socket.Write(senddata) iferr!=nil{ fmt.Println("发送数据失败!",err) return } //接收数据 data:=make([]byte,4096) read,remoteAddr,err:=socket.ReadFromUDP(data) iferr!=nil{ fmt.Println("读取数据失败!",err) return } fmt.Println(read,remoteAddr) fmt.Printf("%s\n",data) }
希望本文所述对大家Go语言程序设计有所帮助。