因为项目需要,所以肝了一个在线聊天室,花了不少时间哈哈哈,在博客里记录一下,转载请注明出处!
该项目已上传至 Github:https://github.com/senyucci/TcpChatRoom
详细的源码 (客户端
+服务端
) 下载地址在个人博客的文末:https://www.seny.xyz/archives/onlinechat
相关技术
该项目所需要的技术有
- Unix 网络编程相关知识
- C++ 多线程相关技术
- Mysql 数据库相关
- QT图形界面开发
一、Unix 网络编程
Unix网络编程的部分,这块虽然知识既多又杂,但只要理解了 socket
的抽象,并将网络编程的 相关函数
与计网中的 相关模型
进行结合就能很快掌握,究其根本就是一套相同的模板:
服务器:
// 1. 创建并初始化服务器 socket
int socket(int family,int type,int protocol);
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
// 2. 开启监听
int listen(int sockfd, int backlog);
// 3. 等待客户端连接
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)