golang中的并发服务器
生活随笔
收集整理的这篇文章主要介绍了
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中的并发服务器的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: golang中的socket
- 下一篇: golang中的http服务器