C语言--聊天室编程知识记录(使用gtk图形化界面)

本文记录了一款C语言聊天室的开发过程,包括使用gtk构建图形化界面,采用tcp/udp双协议通信,服务器端利用线程池和epoll进行多路复用。客户端通过sqlite3管理数据库,并实现用户登录注册、好友群聊、文件传输等功能。
摘要由CSDN通过智能技术生成

最近把之前写的聊天室项目重新整理了一遍,写个笔记记录一下编程思路。

版本一的聊天室没有图形化界面,服务前端没有使用多线程,使用tcp协议,select多路复用,基本实现登陆注册、修改密码、私聊、群聊、VIP功能(禁言、踢出群聊)(大概就这些时间久远)。https://download.csdn.net/download/dada12138/11664793

版本二的通讯系统,使用tcp/udp双协议进行通信,服务器端使用线程池进行线程管理,epoll实现多路复用,客户端使用gtk制作图形化界面,基本实现登陆注册(自动登陆,记住密码)、增添好友、创建群聊、私聊、群聊、聊天记录、退出群聊、删除好友、传输文件(传输大文件有bug未修复)等功能。

1、数据库模块

使用sqlite3数据库(没有使用主键外键,用的非常生硬的进行数据库操作)。

客户端建立用户数据库,用户使用记住密码功能时将用户的用户id,昵称,密码保存在用户数据库中,另外每个用户建立专属的数据库保存发送消息记录和未收消息记录。

服务器端建立用户数据库(保存用户总表),各个用户的专属数据库(保存各自的好友表,群组表,聊天记录表,文件接收表),群组数据库(保存群组成员表,群组总表)。

2、通信模块

服务器端与客户端之间的通信使用tcp协议,客户端和客户端之间的通信使用udp协议。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值