ChatRoom聊天室项目

10 min read

简介

这是一个运用CAsyncSocket类设计的聊天室程序,使用Visual Studio 2015开发工具,编程语言使用C++创建的MFC应用程序。本实例是一个聊天室程序,采用C/S模型,分为客户端程序和服务端程序。

实现功能

服务器端

  1. 服务器开启时默认绑定本地IP地址和端口号8888,可以主动断开连接。能够显示连接状态。
  2. 能够解析聊天信息,若是新用户,获取并显示用户昵称、ip地址、端口号等信息,并显示“欢迎新人加入”的信息。若是私聊信息,则一对一发送信息。若是公聊信息,则向所有用户转发信息。

客户端

  1. 主动发出连接请求与服务器建立连接,能够向服务器发送信息,能够接收并解析服务器发来一切信息,如新用户的加入、旧用户的退出等。
  2. 能够显示并查看历史聊天信息,同时显示聊天的日期和时间。
  3. 当信息较多时,能够滚屏显示。
  4. 能够将聊天信息导出、保存到文本文件中。

功能截图

客户端连接服务器

发送公聊信息

发送私聊信息

类图关系分析

服务端项目结构

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       # 资源文件

UML类图

评论

ChatRoom聊天室项目 | Niutr's Blog | Niutr's Blog