电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MFC小型局域网聊天室的实现毕业论文.doc

12页
  • 卖家[上传人]:夏**
  • 文档编号:431489044
  • 上传时间:2024-02-23
  • 文档格式:DOC
  • 文档大小:173.50KB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、学习中心编号:122008 学习中心名称: 西南大学网络与继续教育学院毕 业 论 文(设计)题目: MFC小型局域网聊天室的实现学生姓名 学 号 1 类 型 网 络 教 育 专 业 计算机科学与技术 层 次 专升本 指导教师 日 期 2014.10.9 MFC小型局域网聊天室的实现摘 要 随着科技的发展,越来越多的小型公司需要组建一个网络,以支持公 司日常用的运作,由于小型企业的网络规模小,所以就需要有合适的组网方案,才能提供相对安全的网络环境。本文探讨一种基于 MFC 的抽象类 Socket 的局域网通信工具-聊天室的设计与实现方法。通过了解 Winsock 网络编程的相关技术,利用 TCP/IP 协议簇与应用层通信的中间软件抽象层 Socket 接口来实现局域网内两台微机之间的连接。通过异步方式实现服务器/客户端的通信模式,从而达到构造小型的局域网聊天室的目的。关键词:Socket,TCP/IP,局域网,服务器/客户端,异步方式目 录 一、绪论4二、总体设计4(一)聊天室的设计目标4(二) 聊天室的实现思想4(三) 聊天室的工作流程4三、 关键技术5(一)Windows Socke

      2、ts5(二)多线程编程技术5四、功能分析5(一)服务器端功能6(二)客户端功能6五、详细设计6(一)服务器端的实现6(二) 客户端的实现9结论12参考文献12一、 绪论近年来,互联网发展日新月异,网络使空间的距离不再成为人们沟通的障碍,世界各个角落的人们可以通过 Internet收发邮件、实时聊天、获取最新的资讯,本文将讨论一种基于Socket 的局域网通信工具的设计与实现方法。基于 Socket 的局域网通信软件可以为企业原有的局域网提供一种良好、安全、快速的通信机制。它的实现无需对企业原有的局域网硬件进行任何改动,具有实现成本低廉的优点,它的使用能有效地降低局域网通信负荷,提高局域网的使用效率,可以很好地解决企业内部局域网的各种通信需求。它很好地诠释了 Socket通信的原理,并且在企业内部通信、教学、讨论等应用中都具有一定的实用价值。它具有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐能力低,易于编程实现等优点。基于 Socket的局域网通信软件应用范围广阔,不但可以处理传统的通信需求,而且也能扩展以适应新型的网络应用,如网络教育,数据影音传输等,拥有广泛的应用前景

      3、。二、总体设计(一)聊天室的设计目标本课题是建立聊天通信模型,设计一个聊天室软件,包括服务器端和客户端。服务器端功能:初始化 Socket,创建服务器端;)维护一个链表,保存所有用户的 IP地址、端口信息;接受用户传送来的聊天信息,然后向链表中的所用用户转发;接受用户传送来的连接判断命令,并向用户发出响应命令。客户端功能:客户端界面上的两个文本框,一个用于显示接受的聊天信息,一个用来接受用户输入的聊天信息。当按下“发送”按钮时将信息发送给服务器。通过本课题的毕业设计,可以比较深入的了解和掌握 Winsock 控件基本属性、方法和事件,理解网络聊天通信的概念,输控制协议(TCP)进行数据交流,初步掌握网络聊天通信程序的设计方法。并能巩固和扩展大学期间的学习内容,进行项目的设计开发训练,更好的适应社会的需求。(二) 聊天室的实现思想聊天室程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序连接到服务器,就可以与在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在 TCP/IP环境下,实现服务器端和客户端两部分程序。(三) 聊天室的工作流程(1)服务器端工作流程。服务

      4、器端通过 socke(t)系统调用创建一个 Socket 数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定 bind(),就可以在端口进行监听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个 Socket。然后登客户端的用户就可以在服务器上聊天了。(2)客户端工作流程。客户端程序相对简单,只需要建立一个 Socket与服务器端连接,成功后通过这个 Socket来发送第 37 卷第 4 期和接收数据就可以了。三、 关键技术(一)Windows SocketsWindows Sockets 是一套开放的、支持多种协议的 Windows 下的网络编程接口. Socket 实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket 接口的计算机通信 . 应用程序在网络上传输,接收的信息都通过这个 Socket 接口来实现(图 1).(二)多线程编程技术进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其他各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止

      5、时被释放或关闭. 线程是进程内部的一个执行单元系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,将程序的启动点提供给 Windows 系统. 主执行线程终止了,进程也就随之终止. 一个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间、全局变量和系统资源,所以线程间的通讯非常方便,多线程技术的应用也较为广泛。. 图 1 面向相连接的套接字的系统调用图四、功能分析本系统是建立局域网通信模型,设计一个聊天系统,根据网络应用程序的特点,局域网聊天系统有即时、高效的特点 服务器端和客户端有不同的功能与需求。(一)服务器端功能1)能够正确地、无冲突地启动服务器;2)监听指定的端口,等待用户的连接;3)接收到用户连接请求时,验证用户身份;4)接收处理用户注册信息;5)建立与客户端的连接,并能通知已在线用户;6)向新登陆的用户发送已上线的用户信息;7)接收客户端的消息请求,并能正确无误地处理消息,并能发出消息到客户端;8)当用户断开与服务器端的连接时,服务器能够正确的断开连接,并通知其他在线用户;9)当服务器关闭时,应通知所有在线用户(二)客户端功能

      6、1)能够正确启动应用程序,并能向服务器发出连接请求;2)能够向服务器发送注册请求;3)显示在线用户列表;4)能够向指定聊天对象发送消息;5)能够及时接收其他用户发出的消息;6)能够正确断开与服务器的连接;7)当服务器关闭时,所有用户自动下线五、详细设计我们利用 WinSocket实现一个网络聊天室。需要一个聊天服务器,它可以和很多客户端进行通信,从而把来自不同的客户的聊天信息转交到所有其他的客户端。这样就形成了一个采用 Client/Server结构的并可以多人同时在线的聊天室。(一)服务器端的实现服务器端主要用于接收客户端的连接,并转发客户端的信息。服务器端的具体实现过程如下:(1)利用“MFC AppWizard”创建一个基于对话框的应用程序,在对话框中添加 List Box、Edit Box等控件。服务器端对话框界面如 2 所示。图 2 服务器端界面运行图(2)在对话框中类的头文件中引用 winsock2.h 头文件,并导入 ws2_32.lib库文件。#include“winsock2.h”#pragma comment(lib“,ws2_32.lib”)(3)在对话框类中定义

      7、成员变量,记录服务器套接字和与之连接的客户端套接字信息。SOCKET m_server,m_client;SOCKET m_ClientsMAXNUM;/ 客户端套接字int m_CurClient; / 当前连接的客户数量(4)在对话框的 OninitDailog 函数中创建套接字,并初始化数据。/ 创建套接字m_server = socke(tAF_INET,SOCK_STREAM,0);/ 将网络中的事件关联到窗口的消息函数中WSAAsyncSelect (m_server,m_hWnd,20000,FD_WRITE|FD_READ|FD_ACCEPT);m_client = 0;m_serverIP = ;for(int i = 0;i MAXNUM;i+)m_Clientsi= 0;m_CurClient = 0;(5)处理“监听”按钮的单击事件,将套接字绑定到本机地址,并开始监听套接字。void CSocketChatFWQDDlg:OnOK()/ 服务器端地址sockaddr_in serveraddr;serveraddr.sin_family = AF_INET;m_

      8、IP.GetWindowTex(tm_serverIP);/ 设置本机地址serveraddr.sin_addr.S_un.S_addr = inet_add(rm_serverIP);UpdateData(TRUE);/ 设置端口号serveraddr.sin_port = htons(m_port);/ 绑定地址if (bind (m_server,(sockaddr*)&serveraddr,sizeof(serveraddr)MessageBox(“绑定地址失败.”);return;/ 开始监听listen(m_server,50);(6)向对话框中添加 HeadleData函数,用于接收客户端的连接,并获得客户端传来的数据,将其转发给其他客户端。void CSocketChatFWQDDlg:HandleData()sockaddr_in serveraddr;char buffer1024;int len =sizeo(fserveraddr);/ 接收客户端的数据int curlink =- 1;int num =- 1;for(int p = 0;p MAXNUM;p+)num= recv(m_Clientsp,buffer,1024,0);if(num !=- 1)curlink = p;break;buffernum= 0;if(num=- 1) / 接受客户端的连接if(m_CurClient MAXNUM)m_Clients m_CurClient = accept(m_server,(struct sockaddr*)&serveraddr,&len);m_CurClient+=1;return;/ 将接收的数据发送给客户端for(int j = 0;j m_CurClient;j+)if(j != curlink)send(m_Clientsj,buffer,n

      《MFC小型局域网聊天室的实现毕业论文.doc》由会员夏**分享,可在线阅读,更多相关《MFC小型局域网聊天室的实现毕业论文.doc》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.