Golang实现UDP Server
2020-06-07 22:02
447 查看
Server端
1、net.ListenUDP() 监听UDP服务
2、net.UDPConn.ReadFromUDP() 循环读取数据
3、net.UDPConn.WriteToUDP() 写数据
package main import ( "fmt" "log" "net" ) func main() { // 监听UDP服务 udpConn,err := net.ListenUDP("udp",&net.UDPAddr{ IP: net.IPv4(0,0,0,0), Port: 9090, }) if err != nil{ log.Fatal("Listen failed,",err) return } // 循环读取消息 for { var data [1024]byte n,addr,err := udpConn.ReadFromUDP(data[:]) if err != nil{ log.Printf("Read from udp server:%s failed,err:%s",addr,err) break } go func() { // 返回数据 fmt.Printf("Addr:%s,data:%v count:%d \n",addr,string(data[:n]),n) _,err := udpConn.WriteToUDP([]byte("msg recived."),addr) if err != nil{ fmt.Println("write to udp server failed,err:",err) } }() } }
Client端
1、net.Dial() 建立连接
2、net.UDPConn.Write() 写数据
3、net.UDPConn.ReadFromUDP() 回复数据
package main import ( "fmt" "log" "net" ) func main() { // 连接服务器 conn,err := net.DialUDP("udp",nil,&net.UDPAddr{ IP: net.IPv4(127,0,0,1), Port: 9090, }) if err != nil { log.Println("Connect to udp server failed,err:",err) return } for i:=0;i<10;i++{ // 发送数据 _,err := conn.Write([]byte(fmt.Sprintf("udp testing:%v",i))) if err != nil { fmt.Printf("Send data failed,err:",err) return } //接收数据 result := make([]byte,1024) n,remoteAddr,err := conn.ReadFromUDP(result) if err != nil{ fmt.Printf("Read from udp server failed ,err:",err) return } fmt.Printf("Recived msg from %s, data:%s \n",remoteAddr,string(result[:n])) } }
相关文章推荐
- 深入理解Golang之http server的实现
- 请教 indy 中的 tldUdpServer 如何实现对本地端口6100进行监听!
- golang实现简易TCP服务以及TCP和UDP协议对比
- Java UDP Server的轻量级实现
- python实现的udp协议Server和Client代码实例
- 使用TCP和UDP分别实现Client和Server传输文件
- 用UDP实现client程序发送字符串到server程序,server程序将字符串打印出来。
- Golang Socket Server自定义协议的简单实现
- JavaSE socket 基于UDP Server/Client的实现
- golang 实现GIT SERVER基本原理
- 【Linux】中UDP_server的实现
- 第九章 TCP和UDP同一时候用复用一个port实现一个回射server
- java udp server 服务端简易实现
- epoll简介 与 UDP server的实现
- IdUDPServer和IdUDPClient 实现数据通信
- UDP_server服务器和用户空间下如何实现可靠性
- UDP-server/client实现字符大写转换
- [Golang] 从零开始写Socket Server(5):Server的解耦—通过Router+Controller实现逻辑分发
- 使用JAVA NIO实现的UDP client和server
- TCP/UDP client/server library for Java, 最好的java语言tcp udp 服务器客户端实现库