没有合适的资源?快使用搜索试试~ 我知道了~
vc++网络聊天室的实现计算机操作系统课程设计说明书(含MFC源程序).pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 31 浏览量
2021-11-21
09:15:40
上传
评论
收藏 2.45MB PDF 举报
温馨提示
试读
23页
vc++网络聊天室的实现计算机操作系统课程设计说明书(含MFC源程序).pdf
资源推荐
资源详情
资源评论
操作系统实验报告
1
1
实 验 报 告
|
|
实验名称
网络聊天室 的实现
课程名称 计算机操作系统
|
|
操作系统实验报告
2
2
目 录
【1】 设计原理——————————————————————— 4
【2】 程序流程图—————————————————————— 9
【3】 设计步骤——————————————————————— 10
【4】 使用方法说明————————————————————— 21
【5】 实验结果及分析———————————————————— 24
操作系统实验报告
3
3
设计原理
计算机网络技术发展至今已经大大超越了人们当初的预想,无论是人们日常的工作还
是学习, 我们都越来越多的依靠到互联网。 各种实时性的聊天娱乐软件也同时诞生, 而且为
我们的即时通讯带来了众多的方便,比如说大家所熟知的腾讯 QQ、微软的 MSN 、移动的
Fetion 等,都是做的比较成功的实时聊天工具。随着网络的日益普及,各种聊天工具也层出
不穷,接下来的课程设计就是针对一个简单的网络聊天程序,利用 MFC 为开发工具,实现
基本的通讯功能。
此程序主要分为两部分:服务器端和客户端。服务器端用于提供一个网络端口,等待
客户端发出请求, 登录到此服务端, 然后进行网络通讯和消息的转发; 客户端可通过服务器
端的 IP 地址发送连接请求,然后登陆聊天室。在服务器端的成员列表栏中会显示在线的所
有人名单, 有人退出聊天室, 成员列表会自动除名。 服务器端同时也提供了成员之间的私聊
功能,此时服务器端作为一个转发站,进行消息的转发。整个程序的主体使用了 CSocket
类的方法,实现了网络通讯聊天。
整个程序设计为两个部分:服务器 (ChatServer)和客户端 (Chat)
多人聊天的关键在于要将每个客户端发送过来的消息分发给所有其他客户端, 为了解决
这个问题, 在服务器程序中建立一个套接口链表, 用来保存所有与客户端建立了连接的服务
端口。下面描述了多人聊天的实现原理:
当客户端 Client N 向对应的服务端口 N 发送了消息 Message,服务端口 N 将 Message
复制给所有套接口列表 (USERLIST) 中的套接口缓冲区,然后向每个服务端口发送 WRITE
消息,使每个服务端口将 Message 发送给对应的客户端。这样,所有客户端就都获得了
Message 消息,实现了多人聊天功能。
BOOL CClientSocketList::Sends(char *buff,int n)
{CClientSocket *curr=Head;
while (curr)
{curr->Send(buff,n);
curr=curr->Next;}
return true;}
USERLIST 表时多人聊天程序的核心, 它是一个动态变化的链表, 为空表示没有客户端
建立了连接,不为空时每个元素就代表有一个客户端与服务器建立了连接。
操作系统实验报告
4
4
以下程序是私聊功能的实现:
BOOL CClientSocketList::OnlySend(char *buff,int n,int who)
{
CClientSocket *curr=Head;
while (curr && who>0)
{curr=curr->Next;
who--;}
curr->Send(buff,n);
return true;}
以下是此程序的效果截图:
服务器端的效果截图
操作系统实验报告
5
5
用户“ yq”的登录界面
剩余22页未读,继续阅读
资源评论
yanyu111112
- 粉丝: 0
- 资源: 4万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功