package mainimport ("net""fmt""time"
)func main() {// 组织一个 udp 地址结构, 指定服务器的IP+portsrvAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:8006")if err != nil {fmt.Println("ResolveUDPAddr err:", err)return}fmt.Println("udp 服务器地址结构,创建完程!!!")// 创建用户通信的 socketudpConn, err := net.ListenUDP("udp", srvAddr)if err != nil {fmt.Println("ListenUDP err:", err)return}defer udpConn.Close()fmt.Println("udp 服务器通信socket创建完成!!!")// 读取客户端发送的数据buf := make([]byte, 4096)for {// 返回3个值,分别是 读取到的字节数, 客户端的地址, errorn, cltAddr, err := udpConn.ReadFromUDP(buf)         // --- 主go程读取客户端发送数据if err != nil {fmt.Println("ReadFromUDP err:", err)return}// 模拟处理数据fmt.Printf("服务器读到 %v 的数据:%s\n", cltAddr, string(buf[:n]))go func() {                 // 每有一个客户端连接上来,启动一个go程 写数据。// 提取系统当前时间daytime := time.Now().String() + "\n"// 回写数据给客户端_, err = udpConn.WriteToUDP([]byte(daytime), cltAddr)if err != nil {fmt.Println("WriteToUDP err:", err)return}}()}
}

golang中的并发服务器相关推荐

  1. 进一步认识golang中的并发

    如果你成天与编程为伍,那么并发这个名词对你而言一定特别耳熟.需要并发的场景太多了,例如一个聊天程序,如果你想让这个聊天程序能够同时接收信息和发送信息,就一定会用到并发,无论那是什么样的并发. 并发的意 ...

  2. golang中的并发竞争态

    golang程序中并发会引起并发竞争,一起没理解,为什么说两个goroutine访问共享资源会引发竞争态,我的理解如果只使用一个逻辑处理器本质上不就是同一时间只有一个goroutine在跑吗,为什么会 ...

  3. golang中的http服务器

    简介 http WEB服务器: 1. 注册回调函数:http.HandleFunc("/", myHandler)func myHandler(w http.ResponseWri ...

  4. golang中map并发读写问题及解决方法

    这是一个创建于 2017-03-05 06:02:54 的文章,其中的信息可能已经有所发展或是发生改变. 一.map并发读写问题 如果map由多协程同时读和写就会出现 fatal error:conc ...

  5. golang中并发sync和channel

    golang中并发sync和channel chenbaoke · 2014-12-08 13:00:01 · 19151 次点击 · 预计阅读时间 5 分钟 · 不到1分钟之前 开始浏览 这是一个创 ...

  6. C++网络编程(四):多进程并发服务器

    部分内容转自Linux并发服务器编程之多进程并发服务器. 目录 前言 创建进程 Linux下的进程 进程创建函数fork与vfork exec函数 使用fork函数实现多进程并发服务器 分割I/O程序 ...

  7. 如何在golang中关闭bufio.reader_Golang 并发模型系列:1. 轻松入门流水线模型

    Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文 ...

  8. tcp并发服务器_在Go中构建并发TCP服务器

    tcp并发服务器 本文是Mihalis Tsoukalos的"围棋"系列的一部分. 阅读第1部分: 在Go中创建随机,安全的密码 . TCP和UDP服务器无处不在,通过TCP / ...

  9. go高性能tcp服务器,在Go中构建并发TCP服务器

    开发一个并发TCP服务器,该服务器仅使用大约65行GO代码生成随机数. TCP和UDP服务器随处可见,通过TCP/IP网络为网络客户端提供服务.在本文中,我将在GO编程语言,返回随机数.对于来自TCP ...

最新文章

  1. JavaScript库开发者们的规则
  2. C++ 中的类型限定符 类型限定符提供了变量的额外信息。
  3. python+selenium+chrome实现自动登录百度
  4. c# 拼接Json串的几种方法
  5. 工作108:精准的v-for和if
  6. Android中Activity启动模式
  7. loadrunner 参数化
  8. 浅入浅出 Android 安全:第五章 Android 应用层安全
  9. YAML文件结构简介
  10. python凹多边形分割_直线切割凹多边形
  11. 百度搜索正式升级冰桶算法5.0!
  12. python 绘制随机漫步图(创建RandomWalk类)
  13. 网络基础之路由器的应用原理
  14. 东莞女德班被责令停办 学员被遣散并退回学费
  15. 升级JDK版本注意事项
  16. 2022 哪些企业在考虑 IDaaS ?IDaaS 适合我们企业么?
  17. linux nas目录老是掉,Linux运维:NAS存储故障案例
  18. Java 性能优化的七个方向
  19. 1370:最小函数值(minval)
  20. noip2013 总结

热门文章

  1. 【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )
  2. 【错误记录】Flutter 组件报错 ( No Directionality widget found. | RichText widgets require a Directionality )
  3. 【运筹学】人工变量法总结 ( 人工变量法解的分析 | 标准型变换 | 构造单位阵 | 目标函数引入 M | 计算检验数 | 选择入基变量 | 选择出基变量 | 中心元变换 | ) ★★
  4. 【计算机网络】数据链路层 : IEEE 802.11 无线局域网 ( 802.11 MAC 帧头格式 | 无线局域网分类 )
  5. 【Android 应用开发】AndroidUI设计 之 图片浏览器
  6. MyBatis传入多个参数的问题
  7. Metail Design各个控件(二)
  8. intellijidea课程 intellijidea神器使用技巧 3-1 列操作
  9. gcc 常用命令(逐渐完善)
  10. movsb movsw movsd 指令详解