最后实现功能
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++服务器开发项目打下基础。