欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

golang中的并发服务器

发布时间:2025/6/15 编程问答 25 豆豆
生活随笔 收集整理的这篇文章主要介绍了 golang中的并发服务器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
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中的并发服务器的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。