linux C++聊天室项目(3)完结撒花

开发了一个聊天室应用,功能包括登陆/注册/注销、文件上传下载、公私聊。利用epoll模型进行通信,通过C++处理TCP分包粘包问题,支持txt文件编码转换。项目已上传至GitHub,计划进一步学习《Linux多线程服务端编程》提升C++服务器开发能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最后实现功能

1.文件上传和下载以及查看服务器可下载文件(利用多线程)

2.tcp分包粘包问题

具体代码已经全部上传至github

链接:虫虫聊天室
 

总结:

实现功能

1.登陆/注册/注销账号

2.文件上传和下载

3.公聊和私聊

4.识别txt文件编码自动转换为GB2312,windows系统可上传下载

5.可挂载在云服务器,实现局域网和远程通信

实现方法

1.利用epoll模型,搭建基本通信框架

2.利用linux c++连接mysql数据库,进行增删查改实现用户登陆/注册/注销账号

3.封装recvMsg和sendMsg函数,发送数据格式为数据大小+数据内容,解决tcp分包粘包问题

4.c++调用shell脚本,实现识别txt文件编码自动转换为GB2312

5.服务端文件上传下载利用多线程实现,防止阻塞

碎碎念:

拿了快手测开offer后,在学校里突发奇想想做个webserver,但是网络编程我是一点也没学过就先学着做一个聊天室,书上的理论学了很多,但是实际开发却没接触过。因此开始现学c++ socket编程+多线程编程,然后一点点搭建框架开发,一点点完善再测试,虽然聊天室很简单,总开发时间也只有5天左右(头发要掉光光了55555),但算是一个c++网络编程起步练习,学到了很多东西。千里之行始于足下,下一步是研读那本非常经典的《 Linux多线程服务端编程:使用muduo C++网络库 》精进自己c++服务器编码水平,为之后做c++服务器开发项目打下基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值