项目要求:
实现Linux环境下的简易聊天室,采用C/S模型,实现多客户端之间的稳定数据传输。可参考QQ、微信功能。
前言
这个聊天室是暑假期间做的一个项目,也是自己写出来的第一个项目,两周之后这个项目终于完成了。
这个项目主要是对LinuxC网络编程的一次实践,在项目实现过程中,在项目需求下也学习到了许多其他东西。
项目相关知识
下面列出项目中主要用到的内容mysql | socket | epoll |
---|---|---|
mysql基本语法以及c语言操作数据库 | read/write(recv/send) | epoll_wait() |
实现思路
- server采用对等模式 (Peer-to-peer pattern),即每当有一个新的客户端发送连接请求时,为这个客户端创建一个线程;此后,这个客户端的所有操作请求都由这一个线程及其创建的子线程来处理。
- client分出来两个子线程,只用来读写套接字;主线程阻塞等待。
- 呈现给客户端的内容分为多层的界面,依此思路,将每一层界面交给一个新创建的子线程来处理。
下文依照不同界面进行划分展示
一、欢迎界面
登陆成功后进入用户界面
二、用户界面
三、好友界面
四、群列表界面
五、群选项界面
总结
其中每层界面中还有多个子线程可进入,这里不过多的展示。如果感兴趣的话可以在我的github里拉下来自己玩一玩。