Golang网络编程UDP

作者: TZX_0710 | 来源:发表于2021-08-05 19:48 被阅读0次

UDP协议

UDP协议中文名称使用户数据报协议。UDP是一种无连接的传输层协议不需要建立连接就可以直接进行数据发送和接受,属于不可靠的,没有时序的通信。但是UDP实时性比较好,通常用于视频直播相关领域

服务端

package main

import (
  "fmt"
  "net"
)

//UDP协议
func main() {

  //chu
  listen, err := net.ListenUDP("udp", &net.UDPAddr{IP: net.IPv4(0, 0, 0, 0),
      Port: 30000})
  if err != nil {
      fmt.Println("err:", err)
      return
  }
  defer listen.Close() //关闭监听
  for true {
      var bf [1024]byte
      udp, addr, err := listen.ReadFromUDP(bf[:]) //接受UDP数据
      if err != nil {
          fmt.Println("read udp failed,err", err)
          continue
      }
      fmt.Printf("data:%v,addr:%v", string(bf[:udp]), addr)
      //写入数据
      _, err = listen.WriteToUDP(bf[:udp], addr)
      if err != nil {
          fmt.Println("write udp error", err)
          continue
      }
  }
}

客户端

package main

import (
  "fmt"
  "net"
)

func main() {
  //开启通道
  socket, err := net.DialUDP("udp", nil, &net.UDPAddr{IP: net.IPv4(0, 0, 0, 0),
      Port: 30000})
  if err != nil {
      fmt.Println("err:", err)
      return
  }
  defer socket.Close() //关闭连接
  sendData := []byte("hello server")
  _, err = socket.Write(sendData)
  if err != nil {
      fmt.Println("发送数据失败", err)
      return
  }
  data := make([]byte, 4096)
  udp, addr, err := socket.ReadFromUDP(data) //接收数据
  if err != nil {
      fmt.Println("接受数据失败", err)
      return
  }
  fmt.Printf("recv:%v,addr:%v", string(data[:udp]), addr)
}

相关文章

  • Golang网络编程UDP

    UDP协议 UDP协议中文名称使用户数据报协议。UDP是一种无连接的传输层协议不需要建立连接就可以直接进行数据发送...

  • 30.3. 企业级开发进阶2.3:UDP编程

    ** 本节内容如下** 什么是UDP协议 UDP网络编程——服务端程序开发 UDP网络编程——客户端程序开发 1....

  • golang udp编程

    介绍 用户数据报协议(User Datagram Protocol,缩写为UDP),又称用户数据报文协议,是一个简...

  • 网络编程-UDP

    1.UDP ·使用网络能够把多方链接在一起,然后可以进行数据传递 ·所谓的网络编程就是,让在不同的电脑上的软件能够...

  • UDP网络编程

    UDP协议的理解

  • UDP网络编程

  • 网络编程

    网络 Socket 基于TCP协议的Socket编程 基于UDP协议的Socket编程

  • 218集 生产者消费者环境

    219线程 任务调度 220 线程总结 221课 网络编程_概念_网络_端口_URL_TCP_UDP 网络编程是网...

  • Golang网络编程TCP连接

    Golang网络编程 TCP编程编写服务端package mainimport ( "bufio" "fmt"...

  • 网络编程,TCP,UDP

    day26笔记【网络编程,TCP,UDP】 day26授课目录: 1_网络编程(网络编程概述)(了解) A:计算机...

网友评论

    本文标题:Golang网络编程UDP

    本文链接:https://www.haomeiwen.com/subject/knhvvltx.html