简单聊天室的设计 C++ MFC

b站有更高级教学视频
https://www.bilibili.com/video/av38700336/

一、要求

要求:分别设计基于对话框的客户端和服务器端的程序,实现两端的通信,服务器端能接受客户端的消息,并且显示客户端的连接信息,把客户端信息分发给各个客户端。

二、软件系统设计方案和原理

  • 1.Socket原理介绍:

Socket概述:
Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket实质上提供了进程通信的端点。进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。正如打电话之前,双方必须各自拥有一台电话机一样。在网间网内部,每一个Socket用一个半相关描述:协议,本地地址,本地端口。一个完整的Socket有一个本地唯一的Socket号,由操作系统分配。
Socket分类:
根据传输数据类型的不同,Socket主要分为三类:①流式Socket;②数据报Socket;③原始Socket。
①流式Socket(SOCK—STREAM),在这种方式下,两个通讯的应用程序之间要先建立一种虚拟连 接,提供可靠的、面向连接的通信流,它使用TCP协 议,从而保证了数据传输的正确性和有序性。

②数据报Socket(SOCK—DGRAM),它使用数据报协议UDP,定义了一种无连接服务,数据通过相互独立的 报文进行传输,是无序的,并且不保证可靠、无差错。

③原始Socket,原始套接字允许对底层协议如IP或 ICMP直接访问,它功能强大但使用较为不便。主要用于一些协议的开发。


  • 2.Socket通信机制:

(1)客户端机制顺序:创建对象 发送连接请求 向服务器发出服务请求 接收服务器返回结果 关闭
(2)服务器机制顺序:创建对象 指定端口号 监听客户端的连接请求 等待连接建立 接收客户端的请求消息 处理客户端的请求消息 处理结果返回客户端 关闭
(3)客户端与服务器交互机制:客户端与服务器的交互主要有四个部分——建立连接、请求数据、回应数据、断开连接。具体介绍如下,共四点。

  • a.建立连接:

客户端在创建对象后可向服务器发出建立连接的消息请求。建立连接前必须打开服务器监听客户端的请求,当客户端发出连接请求时服务器可及时响应并使双方建立连接。

  • b.请求数据:

指建立连接成功后客户端可以向服务器发出服务请求,此时客户端监听并接收消息请求,并对其进行处理。

  • c.回应数据:

在客户端处理完接收到的消息请求后将处理结果返回客户端。此步骤与请求数据为交互的核心步骤。

  • d.断开连接:

服务器与客户端在建立连接成功后可以在任意时刻选择断开连接。

在这里插入图片描述

  • 本题设计的是一个基于VS环境下MFC的socket局域网聊天室,设计内容包括聊天室界面的制作及初始化、动态启用并实现动态伸缩窗口、Socket编程、异步IO模型及多线程、客户端队列及其线性处理、客户端编程及数据发送、程序关闭及线程的结束、任务栏托盘功能的实现,设计方案如下:
  • 聊天室界面的制作及初始化
  • 实现伸缩窗口
  • 客户端连接判断
  • 客户端编程及数据发送
  • 客户端/服务器下线服务器/客户端的响应
  • 程序关闭与线程结束

四、成果

在这里插入图片描述

在这里插入图片描述

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cyril-zxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值