项目源码:https://github.com/One-Snail/mychatroom
引言
在互联网越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网 络,QQ、微软MSN、移动的Fetion等,都是做的比较成功的, 随着网络的日益普及,各种聊天工具也层出不穷,当我们学习《网络与程序设计》这门课程之 后,接下来的课程设计就是针对一个简单的网络聊天程序,利用C语言为开发工具,实现基本的通讯功能。
【一】项目题目及功能
项目题目:socket聊天工具
功能:
- 实现注册功能。
- 登录功能。
- 客户可以通过服务器转发,实现一对一聊天。
- 4.客户端程序应该可以实时显示目前其它用户的在线状态。
- 5.具有文件传输功能
- 6.具有易用、美观的界面。
【二】项目整体设计框架图及说明
-
客户端:
1. 界面部分
主界面分别为登录(login),注册(register),离开(quit)三个选项,当用户登陆成功以后,二级界面为显示在线用户列表(show users_online),聊天(chat),返回(goback),注销(write off).
2. 功能部分
主函数使用TCP流式套接字与服务器进行通信,通信地址为本机地址,主进程负责连接服务器,另有聊天函数,在此函数中新建一个子进程用于接受来自服务器端的通信,而父进程负责发送客户端的数据到服务器,这样可以避免进程因为write函数和read函数一直阻塞,并且各个客户端发送过程中不会互相干扰.除此之外,还有注册函数和登录函数,用户注册和登录的信息会被发送到服务器,然后由服务器发送给MySQL。
-
服务器:
1. 主函数模块
该模块负责服务器创建套接字、绑定、监听等初始化设置,以及如果有连接到达了就创建新的线程,然后在线程中处理客户端的请求。
2. 功能函数
服务器的功能是与客户端的功能大多一一对应的,例如登录、注册、聊天等,服务器根据客户机的请求提供不同的服务。此外,服务器与MySQL的交互函数也在这个模块里。
【三】项目分模块设计说明,流程图
-
服务器:
- 处理注册信息
- 处理登录信息
- 转发聊天消息