简介
这是一个运用CAsyncSocket类设计的聊天室程序,使用Visual Studio 2015开发工具,编程语言使用C++创建的MFC应用程序。本实例是一个聊天室程序,采用C/S模型,分为客户端程序和服务端程序。
实现功能
服务器端
- 服务器开启时默认绑定本地IP地址和端口号8888,可以主动断开连接。能够显示连接状态。
- 能够解析聊天信息,若是新用户,获取并显示用户昵称、ip地址、端口号等信息,并显示“欢迎新人加入”的信息。若是私聊信息,则一对一发送信息。若是公聊信息,则向所有用户转发信息。
客户端
- 主动发出连接请求与服务器建立连接,能够向服务器发送信息,能够接收并解析服务器发来一切信息,如新用户的加入、旧用户的退出等。
- 能够显示并查看历史聊天信息,同时显示聊天的日期和时间。
- 当信息较多时,能够滚屏显示。
- 能够将聊天信息导出、保存到文本文件中。
功能截图
客户端连接服务器
发送公聊信息
发送私聊信息
类图关系分析
服务端项目结构
ChatRoomServer/
├── Source Files/
│ ├── ChatRoomServer.cpp # 应用程序主类 (CApp类)
│ ├── ChatRoomServerDlg.cpp # 主对话框类实现
│ └── stdafx.cpp # 预编译头实现
├── Header Files/
│ ├── ChatRoomServer.h # 应用程序主类头文件
│ ├── ChatRoomServerDlg.h # 主对话框类头文件
│ ├── Resource.h # 资源ID定义
│ ├── stdafx.h # 预编译头
│ └── targetver.h # 目标版本
├── Resource Files/
│ └── ChatRoomServer.rc # 资源脚本文件
└── res/
├── ChatRoomServer.ico # 应用程序图标
└── ChatRoomServer.rc2 # 资源文件
客户端项目结构
ChatRoomClient/
├── Source Files/
│ ├── ChatRoomClient.cpp # 应用程序主类
│ ├── ChatRoomClientDlg.cpp # 主对话框类实现
│ └── stdafx.cpp # 预编译头实现
├── Header Files/
│ ├── ChatRoomClient.h # 应用程序主类头文件
│ ├── ChatRoomClientDlg.h # 主对话框类头文件
│ ├── Resource.h # 资源ID定义
│ ├── stdafx.h # 预编译头
│ └── targetver.h # 目标版本
├── Resource Files/
│ └── ChatRoomClient.rc # 资源脚本文件
└── res/
├── ChatRoomClient.ico # 应用程序图标
└── ChatRoomClient.rc2 # 资源文件