目录

前言

1、服务端配置

2、客户端配置

3、多客户端对接消息


前言

UDP是用户数据报协议,是一种无连接传输协议,不需要建立连接就可以直接发送和接收数量,属于不可靠的,没有时序的通信,UDP实时性好,适合直播环境。

1、服务端配置

package mainimport ("fmt""net"
)//UDP服务端配置
func main() {//1:启动监听listener, err := net.ListenUDP("udp", &net.UDPAddr{IP:   net.ParseIP("127.0.0.1"),Port: 30000,})if err != nil {fmt.Println("启动server失败,err:", err)return}defer listener.Close()//获取连接数据for {var buf [1024]byten, addr, err := listener.ReadFromUDP(buf[:])if err != nil {fmt.Println("读取失败,err:", err)return}//信息输出fmt.Printf("来自%v的消息:%v\n", addr, string(buf[:n]))//信息回复_, err = listener.WriteToUDP([]byte("hi"), addr)if err != nil {fmt.Println("回复信息失败,err:", err)return}}
}

2、客户端配置

package mainimport ("fmt""net"
)//UDP客户端配置
func main() {//1:连接服务器coon, err := net.Dial("udp", "127.0.0.1:30000")if err != nil {fmt.Println("连接失败,err:", err)return}defer coon.Close()//发送数据_, err = coon.Write([]byte("hello"))if err != nil {fmt.Println("发送信息失败,err:", err)return}//接收信息var buf [1024]byten, err := coon.Read(buf[:])if err != nil {fmt.Println("接收信息失败,err:", err)}fmt.Println("接收消息:", string(buf[:n]))
}

运行结果为:

3、多客户端对接消息

优化server.go

package mainimport ("fmt""net"
)//UDP服务端配置func process(listener *net.UDPConn) {defer listener.Close()//循环获取连接数据for {var buf [1024]byten, addr, err := listener.ReadFromUDP(buf[:])if err != nil {fmt.Println("读取失败,err:", err)return}//信息输出fmt.Printf("来自%v的消息:%v\n", addr, string(buf[:n]))//信息回复_, err = listener.WriteToUDP([]byte("hi"), addr)if err != nil {fmt.Println("回复信息失败,err:", err)return}}
}func main() {//1:启动监听listener, err := net.ListenUDP("udp", &net.UDPAddr{IP:   net.ParseIP("127.0.0.1"),Port: 30000,})if err != nil {fmt.Println("启动server失败,err:", err)return}process(listener)
}

运行结果为:

Go语言-UDP编程相关推荐

  1. C语言网络编程:UDP通信实现

    文章目录 UDP的特点: UDP的用途 UDP编程模型 UDP通信代码实现 UDP的特点: udp 协议是一种无链接的不可靠传输协议,且UDP每次发送到分组数据大小都是固定的,它的主要特点如下: 不建 ...

  2. UDP编程-DNS解析器的分析与实现(C语言)

    基本知识 基本介绍 域名系统(英文:Domain Name System,缩写:DNS)的作用是将人类可读的域名 (如,www.example.com) 转换为机器可读的 IP 地址 (如,192.0 ...

  3. C语言网络编程:多路IO select实现多客户端

    文章目录 阻塞式的服务器程序 多线程服务器程序 非阻塞式服务器程序 基于事件响应的服务器程序 事件响应服务器程序的实现`select` 阻塞式的服务器程序 我们接触过最多的最基础的网络通信模型为TCP ...

  4. TCP/UDP编程中的问题汇总

    TCP/UDP编程中的问题汇总 TCP和UDP发送大文件的问题. 答: 发送端: 发送时,先发送文件的名称及大小等信息. 然后,设置一个缓冲区的大小,假设为4K. 再循环读4K的文件内容,并发送,直到 ...

  5. C语言SOCKET编程指南

    转载自:http://blog.sina.com.cn/s/blog_79b01f66010163q3.html 这篇文章完全可以作为c语言socket编程指南,无论在任何系统下.感谢作者fenglo ...

  6. C语言网络编程函数与相关结构汇总

    持续更新中- 服务器和客户端的一般流程 服务器端:socket()-->bind( )-->listen()-->accept()-->read()/write()---> ...

  7. 【go语言 socket编程系列】net.DialTCP、net.DIalUDP与net.Dial

    [函数原型] func DialTCP(network string, laddr, raddr *TCPAddr) (*TCPConn, error)  func DialUDP(network s ...

  8. C语言 socket编程实例

    C语言 socket编程实例 一. 面向连接的流式套接字 C/S 例子 二. 非阻塞的多人聊天服务器端例子 三. 简单的 IPv6 UDP socket编程 四.使用wireshark抓包分析tcp协 ...

  9. 跟李宁老师学Python视频课程(15):Python TCP与UDP编程-李宁-专题视频课程

    跟李宁老师学Python视频课程(15):Python TCP与UDP编程-122人已学习 课程介绍         本系列课程一共20套,每一套视频课程会深入讲解Python的一类知识点.Pytho ...

  10. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

最新文章

  1. java list 多条件排序_java – 如何对arraylist执行一系列排序操作(多个排序条件)
  2. 双主数据库配置与应用
  3. requireJS文件夹
  4. im2col原理小结
  5. 呼叫我,或异步REST
  6. python中什么是关键字参数_如何使用python语言中函数的关键字参数的用法
  7. 用Bi-GRU语义解析,实现中文人物关系分析 | 附完整代码
  8. Android的JNI【实战教程】1⃣️--java和c/c++的那些事
  9. matlab画一个点电荷电场线,matlab画点电荷电场线
  10. SPSS基础教程:SPSS的启动与退出
  11. 【滤波器】基于matlab时变维纳滤波器设计【含Matlab源码 1870期】
  12. 个人网站添加百度统计
  13. 论文精读及分析:Fully Convolutional Networks for Semantic Segmentation
  14. android怎样传图片到mysql中
  15. java小游戏超级玛丽:07.第三关的设计
  16. 新三板上市企业专利数据(含发明专利、实用新型专利、外观设计专利)
  17. 俄亥俄州立大学计算机专业排名,俄亥俄州立大学CS专业排名2020年
  18. 论坛mysql cpu100_解决 MYSQL CPU 占用 100% 的经验总结
  19. api es7 删除所有数据_【译】ECMAScript 2016 (ES7) 新特性一览
  20. WWW相关概念的学习

热门文章

  1. 在MATLAB中处理RAW图像
  2. 红外遥控模块的使用方法,以及stm32代码
  3. JavaScript数据结构与算法基础学习笔记03----链表与双向链表
  4. css通过行内样式绑定背景图片
  5. OpenCV总结——convertTo函数与浮点数类型
  6. 关于一些初级ACM竞赛题目的分析和题解(四)。
  7. 解决Ubuntu 显卡驱动升级导致的 显卡驱动和内核版本不匹配的问题
  8. 微型计算机输入输出的工业标准是7位,工业用微型计算机试题3
  9. matlab 一阶惯性环节,一阶二阶电路滤波器的软件方式实现
  10. JavaScript高级程序设计 第4版