Skip to content

基于C++和win32的简单多人聊天室,通信采用socket

Notifications You must be signed in to change notification settings

AusertDream/MultiplayerChatRoom

Repository files navigation

基于win32和C++的多人聊天室

一款基于C++的多人聊天室,UI采用WIN32设计,通信采用winsock。
只能实现局域网内通信,不能跨网络通信。

技术栈

C/C++
win32
STL
winsock

使用说明

多人聊天室采用C/S服务模式,需要先启动服务端,客户端才能正常使用。
聊天室默认容量100,想要修改可以更改Server源码中的MAX_NUMBER宏定义。
服务端启动只有一个cmd窗口,使用help查看可用指令,cmd窗口仅仅起到监视作用。
客户端正常使用就可以了,登录界面的测试按钮之后补全功能。
注意!登录进去会有一些默认的用户在里面,比如张三李四,和ChatGPT的特殊名字,以上这些均为虚拟用户,实际单聊不会有任何效果。
ChatGPT之后可能接入对应的api

基本功能

1.用户单聊
2.聊天室群聊
3.保存群聊聊天记录
4.基本的异常处理
5.获取当前在线用户列表
6.获取群聊的聊天记录

未解决的问题

1.win32实现表情的浮窗
2.当前双端程序运行起来cpu占用率和电源使用率过高(已经解决)
3.在cpu运行速度较慢的时候,仍然会发生线程同步问题
4.对于消息队列的处理有极大的问题,由于消息处理和接收进行了线程分开,由于消息处理频繁的while循环,给保护消息队列的mutex频繁上锁解锁,导致消息接收时不时阻塞,会漏接消息。
5.写的依托的线程复用问题

版本更新日志

Ver1.0 demo完成,基本功能完成。
Ver1.1 解决CPU占用过高的问题,实现虚拟用户测试功能