golang技术问题交流群,只谈技术问题,不可谈论其他话题。

wwwtuolaji · · 1223 次点击
并发编程和网络编程是现今行业开发中常用的技术。Go 语言强大的语法设定使得并发和网络编程都变的简洁而高效。 下面我们利用前面学到的知识,使用并发和网络实现一个简单的网络在线聊天室。体会下这两种技术的实际应用。在整个聊天室的项目中,充分利用了 go 程并发,处理不同任务。             整个聊天室程序可简单划分为如下模块,都分别使用 go 程来实现: 主 go** 程(服务器):** 负责监听、接收用户(客户端)连接请求,建立通信关系。同时启动相应的 go 程处理任务。 处理连接用户数据 go** 程:HandleConnect     ** 负责新上线用户的存储,用户消息读取、发送,用户改名、下线处理及超时处理。 为了提高并发效率,同时给一个用户维护多个 go 程来并行处理上述任务。 用户消息广播 go** 程:Manager** 负责在线用户遍历,用户消息广播发送。需要与 HandleConnect go 程及用户子 go 程协作完成。 go** 程间应用数据及通信:** map:存储所有登录聊天室的用户信息, key:用户的 ip+port。Value:Client 结构体。 Client 结构体:包含成员:用户名 Name,网络地址 Addr(ip+port),发送消息的通道 C(channel) 通道 message:协调并发 go 程间消息的传递。
#1