# FIFO_ChatRoom **Repository Path**: zhj0125/FIFO_ChatRoom ## Basic Information - **Project Name**: FIFO_ChatRoom - **Description**: Linux 使用命名管道实现聊天室功能 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 2 - **Created**: 2020-04-09 - **Last Updated**: 2025-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FIFO_ChatRoom > Linux 使用命名管道实现聊天室功能 ✔ 建议您首先前往本项目的[说明文档](http://zhj0125.gitee.io/fifo_chatroom/)页面,查看详细的项目说明 ## 根目录文件说明 |文件(夹)名称|用途| |---|---| |.vscode|我的VSCode配置信息| |Data|用于存放项目资料,包括图片和日志文件| |MkDocs|用于存放说明文档网页的源代码| |Project|用于存放项目源代码| |LICENSE|项目开源许可证| |README.md|项目自述文件| ## 程序功能说明 - [x] 实现了多客户端的群聊功能 - [x] 实现了客户端双方的私聊功能 - [x] 私聊对象通过客户端的用户名进行标识 - [x] 完善了客户端和服务器的退出方式 - [ ] 正在尝试使用QT编写程序的UI界面 ## 编译和测试说明 * 使用 git 克隆本项目 * 使用 make 实现客户端和服务器的编译 * server 是服务器程序 * client 是客户端程序 * 客户端默认为群发模式 * 客户端的私聊格式为 `to: [Target_Client_Name] [Message_To_Be_Sent]` > 程序编译示例 > !以下示例仅供参考,具体请看[说明文档](https://zhj0125.gitee.io/fifo_chatroom/04_Instructions/)相关章节以及演示视频 ```bash zhj@thinkpad-vmware:~/FIFO_ChatRoom/Project$ ls client.c fifo.c fifo.h Makefile server.c zhj@thinkpad-vmware:~/FIFO_ChatRoom/Project$ make cc -c -o client.o client.c cc -c -o fifo.o fifo.c cc -c -o server.o server.c rm ./*.o zhj@thinkpad-vmware:~/FIFO_ChatRoom/Project$ ls client client.c fifo.c fifo.h Makefile server server.c ``` ## 效果展示 > 目前已录制了两个视频,分别是[Linux_命名管道_聊天室_测试视频](https://www.bilibili.com/video/BV1Pi4y187co/)和[Linux_命名管道_聊天室_测试视频_V2.0](https://www.bilibili.com/video/BV1254y197AU/) [![V2.0效果展示截图](Data/Image/Video_Show_V2.png)](https://www.bilibili.com/video/BV1254y197AU/) * 点击观看 **[BiliBili - Linux_命名管道_聊天室_测试视频_V2.0版本](https://www.bilibili.com/video/BV1254y197AU/)** * 修复了V1.0版本退出程序的bug * 实现了在某个客户端退出后,服务器向其他用户发送通知的功能 * 优化了客户端界面 * 点击观看 **[BiliBili - Linux_命名管道_聊天室_测试视频_V1.0版本](https://www.bilibili.com/video/BV1Pi4y187co/)** * 实现了群聊功能 * 实现了以用户名为标识的私聊功能 ## 项目日志 > 详细内容请看:[LOG](/Data/Log/README.md)
展开查看 ### Day0 * 具体内容请看: [Day0.md](/Data/Log/Day0.md) * 编写项目需求、可行性分析和技术分析 * 上传命名管道的基础代码 -> 基础代码来自 [Embedded_Linux仓库](https://github.com/ZHJ0125/Embedded_Linux/tree/master/Homework/lesson11) ### Day1 * 具体内容请看: [Day1.md](/Data/Log/Day1.md) * 客户端之间的**群聊功能**已经实现 * 客户端之间的**私聊功能**已经实现 ### Day2 * 具体内容请看: [Day2.md](/Data/Log/Day2.md) * 实现了使用用户名作为标识的私聊功能 * 优化了客户端显示的内容 * 录制了测试视频并投稿至B站 ### Day3 * 具体内容请看: [Day3.md](/Data/Log/Day3.md) * 测试视频已在 [B站审核已通过](https://www.bilibili.com/video/BV1Pi4y187co/) * 编写阶段性成果文章并 [发布在CSDN](https://blog.csdn.net/ZHJ123CSDN/article/details/105449547) * 尝试使用QT编写界面 ### Day4 * 具体内容请看: [Day4.md](/Data/Log/Day4.md) * NULL ### Day5 * 具体内容请看: [Day5.md](/Data/Log/Day5.md) * 安装 Qt for Linux * 发现关于QT的严重问题 ### Day6 * 具体内容请看: [Day6.md](/Data/Log/Day6.md) * 修复退出程序的bug * 实现了在某个客户端退出后,服务器向其他用户发送通知的功能 * 将新版本内容录制为测试视频并投稿至B站 ### Day7--Day11 (2020/04/15--2020/04/19) * Do Nothing ### Day12 (2020/04/20) * 编写[说明文档](http://zhj0125.gitee.io/fifo_chatroom/) ### Day13 (2020/04/21) * 将说明文档框架,由`docsify`转为`MkDocs` ### 2021-11-12 * 更新说明文档-[操作说明](https://zhj0125.gitee.io/fifo_chatroom/04_Instructions/#_1)章节
## 程序代码 > 源代码遵循 [GNU General Public License v3.0](https://gitee.com/zhj0125/FIFO_ChatRoom/blob/master/LICENSE) 开源许可协议 * Gitee 仓库地址 **(推荐)** : [https://gitee.com/zhj0125/FIFO_ChatRoom](https://gitee.com/zhj0125/FIFO_ChatRoom/) * GitHub 仓库地址: [https://github.com/ZHJ0125/FIFO_ChatRoom](https://github.com/ZHJ0125/FIFO_ChatRoom/) * 如果您对代码有任何疑问或修改意见,欢迎 [提出issue](https://gitee.com/zhj0125/FIFO_ChatRoom/issues) 或者直接私信我,谢谢。