C+++网络聊天室设计报告和源程序
聊天软件实验报告
聊天软件实验报告
篇一:简单聊天程序的设计与实现实验报告
实验
2.7 简单聊天程序的设计与实现
班级:计科1301 学号:201350080105姓名:张蓉
一、实验目的
1,掌握Socket 程序设计方法
2,掌握基于Socket 的聊天程序设计方法
3,进一步熟悉C语言或其他程序设计语言
二、实验设备
硬件:运行Windows操作系统的计算机
软件:C语言或其他程序设计语言开发环境
三、实验内容
1,使用基于Socket 的程序设计方法设计聊天客户端和服务器客户端程序2,程序应能实现传输文字信息和聊天功能
四、基本原理
聊天程序是指能提供两人或多人聊天的应用程序,QQ 程序采用的是C/S通信模式,服务器跟客户之间主要有一对多和多对多模式,一对多模式是在服务器和客户端之间用客户端程序登录,验证用户密码,获取在线好友等信息,多对多模式则是在客户端与客户端之间,在线好友直接通信聊天,每个客户端上有实现服务端和客户端两个功能的部分,前者用于接收聊天数据,后者用于发送聊天数据。
用C/S模式进行通信时,作为客户端在请求与服务器连接时需要知道服务器端的IP地址和端口号,腾讯公司的服务器有固定公用网址,客户能很容易的回去服务器的相关信息,在客户端与客户端之间通信时,可以通过登录QQ,让QQ服务器端获得该用户的IP地址和端口号信息,然后通知其他要与该用户进行通信的用户,其他用户就可以连接该用户并与之通信。
五、程序实现
本程序采用基于面向无连接的UDP协议。
需要用到的函数有bind()、sendto()、recvfrom()等
计算机网络课程设计实验报告
计算机网络课程设计实验报告
一、实验项目:网络聊天程序
二、实验要求:
利用Winsock控件,采用TCP或UDP方式实现一个网络聊天程序。具体要求如下:(1)能够实现一个聊天服务器(采用TCP方式时可同时允许15个用户连接),并在用户之间相互进行信息发送。
(2)具有聊天记录功能。
(3)制作一个客户端程序。
在课程设计报告中要求给出程序设计的思想、关键程序说明以及服务器和客户程序运行界面的屏幕截图。
三、实验程序功能:
采用TCP方式实现的网络聊天程序:
(1)以某一用户名注册进入聊天室,自动判断是否与现有聊天室人员重名,给出相关信息。进入后启动线程,获得现有聊天室人员的列表信息;
(2)点击[送出]按钮,向所有人发送信息。双击列表中某人的名字,在弹出的窗口中可以写悄悄话,悄悄话内容只显示在这个人的屏幕上;
(3)点击[刷新谈话区],可以清空聊天信息屏幕。点击[刷新聊天者列表]可以重新从服务器读取聊天室人员列表信息;
(4)点击[退出聊天室],向所有人发送离开信息,同时刷新聊天室人员列表;
(5)服务器端程序先行运行,服务器读取来自客户端的信息流请求,并把相应处理结果返回客户端,完成与客户端的通信。
(6)点击[聊天记录],可以查看聊天室的聊天记录。
四、设计与分析:客户端
聊天室客户/服务器通信图(《》表示信息流方向):
五、设计思想:
传输层协议有两种:TCP和UDP,TCP是可靠传输,它把信息包捆绑,在必要的时候,排序和重传这些信息包以获得可靠的数据传输。UDP支持快速的、无连接的、不可靠的信息包传输。
在JAVA中,使用TCP传输,其套接字的封装函数分TCP/IP客户套接字和
网上聊天 实验报告
C/S网络聊天室程序----实验报告
信科03(1)班楼欢庆I03630117 聊天室程序的设计说明
1.实现思想
在Internet上的聊天室程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。实现语言C++,开发环境VC/MFC。
2.功能模块总纲
2.1服务器端工作流程
服务器端通过socket()系统调用创建一个Sock et数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在服务器上聊天了。实现方式采用异步非阻塞机制。
2.2客户端工作流程
客户端程序相对简单,只需要建立一个Socket 与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了。
2.3 C/S实现过程
服务器端:
<1>首先使用WSAStartup函数来初始化网络环境。
<2>调用socket(AF_INET,SOCK_STREAM,0)函数来创建一个套接字。
<3>调用bind函数将本地地址与刚建立的套接字关联起来。
<4>调用listen函数监听发向该套接字的连接请求。
<5>客户端的连接请求放在连接请求队列里,服务器调用accept函数从连接请求队列中取出第一个请求,创建一个为之服务的新的套接字,该套接字处理所有与该客户交互操作的信息。而服务器进程的监听套接字这时继续处理来自其他客户的连接请求,直到因队列空而等待新的连接请求的到来。
c聊天室实验报告
c聊天室实验报告
C聊天室实验报告
引言:
近年来,随着互联网的迅猛发展,人们的社交方式也发生了巨大的变化。传统的面对面交流逐渐被网络聊天取代,人们可以通过各种聊天软件与朋友、家人以及陌生人进行交流。为了更好地了解网络聊天的特点和影响,我们进行了一项C聊天室实验。
实验目的:
1. 研究网络聊天的特点和模式;
2. 探讨网络聊天对人际关系的影响;
3. 分析网络聊天对个人心理状态的影响。
实验过程:
我们在实验室中创建了一个C聊天室,邀请了一些志愿者参与。志愿者们通过该聊天室进行交流,并记录他们的聊天内容、时间和心理感受。实验持续了一周时间,每天志愿者们都会在特定时间段内进行聊天。
实验结果:
1. 匿名性的影响:与传统面对面交流不同,网络聊天室中的参与者可以选择匿名身份,这种匿名性使得人们更加敢于表达自己的观点和情感。在实验中,我们发现志愿者们在聊天室中更加开放和直接,他们更愿意分享自己的经历和感受,与陌生人建立起了亲密的关系。
2. 社交范围的扩大:网络聊天室打破了地域和时间的限制,使得人们可以与来自世界各地的人进行交流。在实验中,我们观察到志愿者们与来自不同国家和
文化背景的人进行了深入的交流,他们分享了彼此的生活经历和文化差异,这种跨越时空的交流丰富了他们的社交圈子。
3. 沟通方式的变化:与传统的面对面交流相比,网络聊天室中的沟通方式更加多样化。通过表情符号、图片、语音和视频等多种方式,人们可以更准确地传达自己的情感和意图。在实验中,我们发现志愿者们更喜欢使用表情符号和图片来表达自己的情感,这种非语言的沟通方式使得交流更加生动和有趣。
详细功能分析报告
详细功能分析报告
一、软件简介
本软件主要完成简单的多客户端实时通信,基于TCP协议的局域网聊天软件。首先启动服务器,服务器启动后等待客户端的请求,同时显示出离线用户列表。客户端通过输入账号和密码进行登录,如果登录成功,则进入聊天界面,同时显示当前在线好友列表和离线好友列表,如果登录失败,则提示用户账号或者密码错误。当多个客户端进入聊天室后,客户之间可以进行群聊,用户同时可以选择与当前在线的某一好友进行私聊。
二、需求分析
2.1、任务概述
随着信息化时代的快速发展,互联网的应用越来越广泛,同时实时聊天通信技术变得日益重要,不论在学校、家庭或者是公司,局域网聊天已经离不开我们的日常生活。本软件所设计的局域网聊天系统能够实现局域网的聊天、群聊、私聊等功能。
2.2、需求规定
该软件可以完成多客户端的通信,服务器端包括:服务器启动,离线用户列表和在线用户列表,同时还要完成客户端登录信息的验证,当有用户登录成功时,服务器端实时刷新在先用户列表。客户端包括:用户登录,当用户登录成功后,进入聊天界面,用户之间可以进行群聊和私聊。
2.3、对性能的规定
2.3.1、时间特性要求
所有发送操作的响应的时间一般不超过1秒,大量的信息发送后,应该在5秒内显示,如果未发送失败,会提示出相关的错误信息。当存在离线用户上线时,用户在线列表更新时间在3秒内响应。
2.3.2、运行环境规定
该软件只能在windows环境平台下运行,内存在256M以上,硬盘1G空余空间。
三、总体设计
3.1、软件总体功能结构图
图(3.1) 软件总体功能结构图
基于UDP协议的聊天程序设计报告
编号:
计算机网络课程设计
题目:基于UDP的聊天程序
系别:计算机科学与工程学院
摘要
随着网络技术的发展及人们生活的需求,网络聊天已越来越受到人们的青睐。网络聊天已经成为人们工作生活中传递信息、交流感情的重要工具,给人们带来了很大的方便。本课题是开发一个基于UDP的局域网聊天系统,运用软件工程的设计流程,综合运用数据库编程技术、Windows 程序设计技术、网络通讯技术,此网络聊天工具采用客户端/服务器(C/S)模式,客户端采用UDP与服务器连接,客户端与客户端之间通过UDP互相通讯。服务器端具有服务器端口设置,此聊天工具能实现多人聊天功能,适用于局域网使用的网络聊天工具,其操作简单,灵活性好,运行也比较稳定。
关键词:网络通讯;客户端/服务器模型;用户数据报协议;套接字
一、需求分析
1.1 课程设计目的开发一个专用于实现两台计算机之间即时通讯的
软件以方便两台计算机之间信息的交流。在连接并通信时尤其是近程的即时通讯彻底的脱离了远程的服务器避免了和远程服务器连接时过多的浪费网络资源。并且避免了服务器忙或与服务器无法连接时浪费过多时间用于和服务器建立连接因此这个软件是极具适应性和实用性的即时通讯软件本次课程设计的目的是学习基于UDP 协议实现网络聊天程序已达到学会面向无连接方式的程序设计方法并理解网络编程中面向无连接的概念。
1.2 课程设计的内容用户数据报UDP是一个无连接协议使
用这种协议时并不需要在两台计算机之间建立固定的连接也就是说通信双方没有服务器和客户机之分它们之间进行的是对等通信
所以它的优势很明显是现代通信不可或缺的一部分。所以利用它的优势设计一个可以聊天的软件实现两台计算机间的即时通讯。
聊天室课程设计
聊天室课程设计
一、课程目标
知识目标:
1. 学生能理解并掌握网络聊天室的基本概念,了解其功能和用途;
2. 学生能够运用所学的词汇和语法知识,进行流畅的网络交流;
3. 学生能够识别并使用网络聊天室中的常用表达方式和礼貌用语。
技能目标:
1. 学生能够熟练操作网络聊天室软件,包括发送消息、接收消息和表情使用等;
2. 学生能够运用所学的交际技巧,与他人进行有效的网络对话;
3. 学生能够通过聊天室进行信息搜索和问题解答,提高信息获取和处理能力。情感态度价值观目标:
1. 学生能够树立正确的网络交流意识,尊重他人,保持友善和礼貌的态度;
2. 学生能够意识到网络聊天室的积极作用,如增进友谊、拓展知识等;
3. 学生能够认识到网络聊天室的潜在风险,学会保护个人隐私,遵守网络道德规范。
课程性质:本课程为信息技术与英语学科的融合课程,旨在提高学生的网络交流能力和英语实际应用能力。
学生特点:六年级学生已具备一定的英语基础和计算机操作技能,对网络聊天室充满好奇,但可能缺乏安全意识和正确使用网络的能力。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,通过互动交
流、案例分析等方式,培养学生的网络沟通能力和信息安全意识。将课程目标分解为具体学习成果,便于教学设计和评估。
二、教学内容
1. 网络聊天室基本概念:介绍网络聊天室的定义、功能、分类及其在日常生活和学习中的应用场景。
教材章节:《信息技术》第五章第三节“网络交流工具”
2. 网络聊天室操作技巧:教授如何注册、登录聊天室,发送消息、接收消息、使用表情和图片等功能。
局域网聊天实践报告
软件学院实践环节报告
课程名称:软件工程实践一
课题名称:校园微信
专业:软件工程(网络软件开发方向)班级:软工网151
学号:201560040129
学生姓名:王贺
指导教师:余雨萍
2017年9 月28 日
中原工学院软件学院
软件工程实践一设计任务书
指导教师签字:年月日
校园微信
摘要
随着Internet的不断发展普及,网络通讯成为人们生活中的一部分。网络聊天已和手机等一样,成为人们运用最为广泛的通信工具之一。
即时通讯(Instant Messenger,简称IM)软件可以说是目前我国上网用户使用率最高的软件,无论是老牌的ICQ,还是国内用户量第一的腾讯QQ,以及微软的MSN Messenger 都是大众关注的焦点,它们能让你迅速地在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。而且,现在不少IM软件还集成了数据交换、语音聊天、网络会议、电子邮件的功能。
我们经常听到TCP/IP和UDP(用户数据报协议)这两个术语,它们都是建立在更低层的IP协议上的两种通讯传输协议。TCP/IP是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格保证数据正确性的文件传输协议。而UDP是以数据报的形式,对拆分后的数据的先后到达顺序不做要求的文件传输协议。
鉴于局域网的特点和通讯平台本身的要求,本设计主要采用两层C/S架构来实现相互之间的通信。它主要包含以下几大模块:私聊模块、群聊模块、文件传送模块、截屏模块和录音模块。私聊模块可以使得双方一对一通信,既安全又便利;群聊模块实现多人同时通信,可共享聊天内容;文件传送模块用于发送及时文件,
基于TCPIP协议的网络通信应用程序课程设计报告
基于TCPIP协议的网络通信应用程序课程设计报告
华南农业大学理学院
( 计算机网络)
课程设计
实验时间:2010学年第二学期
专业年级:2008级应数2班
实验题目:基于TCP/IP协议的网络通信应
用程序
学生姓名:王晓珊学号_18_自评成绩_95教师评成绩___
学生姓名:黄如萍_学号06_自评成绩_95_教师评成绩___
学生姓名______学号____自评成绩____教师评成绩___
学生姓名______学号____自评成绩____教师评成绩___
指导老师:黄小虎
基于TCP/IP协议的网络通信小应用程序
1.课程设计的题目及要求
1.1 课程设计题目
掌握基于TCP/IP协议实现网络通信,理解TCP与UDP的不同特性以及实现方式。课程设计要求建立一个基于TCP/IP协议的网络通信小应用程序,实验可采用UDP或TCP,建议基于WINDOWS平台。
1.1.1 功能要求
建立一个基于中心服务器方式即时数据通信平台(IM)。要求如下(*为选做内容):
1. 能进行用户管理,所有用户必须登录到服务器,由服务器维护在线信息。
2. IM(Instant Message)功能:用户登录后能进行实时多方点到点短信息通
信,如聊天;
3. 能选择要求服务器进行转发服务;
4. 能保存通信记录到数据库(SQL Server或其他桌面型数据库);
5. 能进行双方文件传输,能显示进度;
6. 支持断点重传。(检查时需有功能随时中断传送,并在下次启动能显示重
传状态);
*7. 数据包加密;
8.实时语音双向传送功能;
*9.多方通话功能;
10.界面设计要求布局合理,信息清晰。
聊天室课程设计
聊天室 课程设计
一、课程目标
知识目标:
1. 学生能够掌握网络聊天室的基本概念和功能。
2. 学生能够了解网络交流的礼仪和安全性,认识到保护个人隐私的重要性。
3. 学生能够运用所学的词汇和句型,进行流畅的网络交流。
技能目标:
1. 学生能够熟练运用聊天软件,进行文字、语音和视频沟通。
2. 学生能够运用所学网络交流礼仪,与他人进行礼貌、尊重的互动。
3. 学生能够通过聊天室,提高自己的团队协作和沟通能力。
情感态度价值观目标:
1. 学生能够树立正确的网络交流观念,养成良好的网络行为习惯。
2. 学生能够尊重他人,关爱他人,培养团队精神和合作意识。
3. 学生能够认识到网络交流的双刃剑效应,学会自我保护,抵制不良信息。课程性质分析:
本课程为信息技术与英语学科的融合课程,旨在通过聊天室的实践操作,让学生在掌握网络交流技能的同时,提高英语实际应用能力。
学生特点分析:
六年级学生具有一定的英语基础,对网络聊天感兴趣,但可能缺乏网络交流的安全意识和礼仪知识。
教学要求:
1. 结合课本内容,设计实际情境,让学生在实践中学习。
2. 注重培养学生的网络素养和英语应用能力,提高课堂趣味性。
3. 强调网络交流的安全性和礼仪,引导学生树立正确的价值观。
二、教学内容
1. 网络聊天室基本概念与功能介绍:
- 聊天室的定义及分类
- 聊天室的功能特点
- 聊天室在生活中的应用
2. 网络交流礼仪与安全:
- 网络交流的基本礼仪
- 个人隐私保护意识
- 抵制网络不良信息的方法
3. 英语网络交流技巧:
- 常用网络聊天词汇和句型
- 文字、语音和视频沟通技巧
软件工程课程设计报告
目录
1 系统概述 (1)
2 需求分析 (2)
2.1 ER图 (2)
2.2 数据流图(分层) (3)
2.3 状态转换图 (4)
2.4 数据字典 (5)
3系统设计 (7)
3.1总体设计 (7)
3.2 详细设计 (8)
3.3服务器模块的代码: (9)
4 测试报告 (11)
5 总结 (15)
6.参考文献 (15)
1 系统概述
该网络聊天室程序支持局域网内以及本机的聊天,拥有客户端,服务器。用户通过客户端启动程序,使用需要先进行注册账号,接着用已注册的账号登陆到聊天室。聊天室中,用户可以选择对象进行私人聊天,同时用户也可以把自己的聊天信息保存下来。服务器负责接收用户的登陆与注册请求,并把用户的信息以及聊天的信息存储在Mysql数据库中。
2 需求分析
2.1 ER图
聊天系统E-R图
2.2 数据流图(分层)
首先,建立顶级数据流图,其中只含有一个代表目标软件系统整体处理功能的转换.
根据聊天室系统与外部环境的关系确定顶级数据流图中的外部实体有两个,分别是:用户和服务器
------------0层-----------
聊天子功能的数据流图
---------------1层-------------
2.3 状态转换图
2.4 数据字典
3系统设计
3.1总体设计
聊天室系统的HIPO图如下:
3.2 详细设计
服务器模块的的PAD图
聊天系统使用mysql数据库,系统中新建chattingroom数据库,f 拥有用户信息表users,该表格式如下
name: varchar(20)
password:varchar(20)
sex:varchar(2)
java聊天室 实验报告
java聊天室实验报告
Java聊天室实验报告
引言:
聊天室是一种通过网络连接,允许用户在同一平台上进行实时交流的应用程序。随着互联网的普及,聊天室成为人们日常生活中不可或缺的一部分。本实验旨
在通过使用Java编程语言,设计和实现一个简单的聊天室应用程序,并探讨其
实现过程中所涉及的关键技术和挑战。
一、项目背景
随着网络技术的飞速发展,人们对于实时交流的需求不断增加。聊天室作为一
种方便快捷的交流工具,受到了广大用户的欢迎。本项目旨在利用Java编程语言,实现一个基于网络的聊天室应用程序,以满足用户的实时交流需求。
二、项目目标
1. 设计和实现一个基于Java的聊天室应用程序。
2. 实现用户之间的实时消息传递功能。
3. 提供可靠的用户身份验证机制,确保聊天室的安全性。
4. 实现聊天记录的存储和查看功能,方便用户回顾历史消息。
三、技术实现
1. 服务器端
在服务器端,我们使用Java的Socket编程实现了与客户端的连接和通信。通
过建立一个服务器Socket,监听指定端口,可以接受来自客户端的连接请求。
一旦连接建立,服务器端就会创建一个新的线程来处理该客户端的请求,并实
现实时消息的传递和处理。
2. 客户端
在客户端,我们同样使用Java的Socket编程实现了与服务器端的连接和通信。客户端通过建立一个Socket,指定服务器的IP地址和端口号,即可与服务器建
立连接。客户端通过输入消息并发送给服务器,同时接收来自服务器的消息并
显示在界面上。
3. 用户身份验证
为了确保聊天室的安全性,我们使用了用户身份验证机制。在用户登录时,客
网络聊天室可行性报告
网络聊天室项目
可
行
性
研
究
报
告
二〇一二年十月
可行性研究报告 (1)
1引言 (3)
1.1编写目的 (3)
1.2背景 (3)
1.3定义 (3)
1.4参考资料 (5)
2可行性研究的前提 (5)
2.1要求 (5)
2.2目标 (6)
3.对现有系统的分析 (7)
3.1处理流程和数据流程 (7)
3.2工作负荷 (7)
3.3费用开支 (7)
3.4人员 (8)
3.5设备 (8)
3.6局限性 (8)
4.进行可行性研究的方法 (8)
4所建议的系统 (8)
4.1对所建议系统的说明 (8)
4.2处理流程和数据流程 (9)
4.3改进之处 (9)
4.4影响 (10)
采用建议系统与现有系统的差别在上面已所过,在此从不同方面具体说一下: (10)
(1).设备; (10)
(2).现有软件; (10)
(3).用户;建议系统使用的新技术是完全基于原有的系统上的,故用户不必考虑新系统
带来的人员培训等等。 (10)
(4).经费支出;建议系统是为了改善原有系统在经费支出过高的缺点的,所以新系统
一经使用在经费支出方面一定会得到很好的改善,用户在使用了新系统后只需要花一定资金购买一部分计算机与软件就能实现自动化。 (10)
4.4.1对设备的影响 (10)
采用建议系统后,改进了原有系统的性能所以对设备要求自然更高,建议系统使用了最先进的技术使设备也必须跟着升级。 (10)
4.4.2对软件的影响 (10)
由于建议系统采用了先进的数据库技术以及一系列高技术含量软件,部分用户可能无法使用。可能要安装VC 08运行库。 (10)
4.4.3对用户单位机构的影响 (10)
JAVA聊天程序设计代码及报告
一.系统需求分析
网络聊天室通常直称聊天室;是一种人们可以在线交谈的网络论坛;在同一聊天室的人们通过广播消息进行实时交谈..
在当今信息时代;越来越多的聊天工具被应用;java语言是当今流行的网络编程语言;它具有面向对象;与平台无关;安全;多线程等特点..使用java语言不仅可以实现大型企业级的分布式应用系统;还能够为小型的的;嵌入式设备进行应用程序的开发..面向对象的开发是当今世界最流行的开发方法;它不仅具有更贴近自然地语义;而且有利于软件的维护和继承;锻炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能力..
本程序正是用java语言实现了简单聊天功能..它是图形界面;线程;流与文件系统等技术的综合应用..其界面主要采用了java.awt包;java.swing包等..
二.系统总体设计
1.对性能的规定
由于本软件知识一个聊天程序;程序只提供用户之间的聊天功能;故对网络传输数据要求不是很高;只要正常的传输速度就可以了..
2数据管理
IP地址IP;端口Port
3.开发环境
本软件采用Java语言编写;Java语言是一种跨平台的编程语言;所以本软件对操作系统没有特别的要求..而网络传输方面采用TCP/IP网络传输协议或者是RMI..
4.设计概要
1本软件客户端与用户共用一段程序..客户端编译运行后;在窗口选择----侦听..用户编译运行后;在窗口选择----连接..
2本软件实现的功能有
1允许服务器侦听客户端;客户端连接到服务器
2允许服务区与客户端之间进行聊天;
3允许服务器与客户端更改背景颜色;
(完整word版)JAVA聊天室实验报告
Java聊天室实验报告
班级: ******
学号: ********
姓名:***
目录:
一、实验目的.。。。。.。...。。.。。..。..。....。。..。。。...。。...。...。..。。.。.。。。3
二、所需技术 .。.。。。..。。。.。..。..。..。。.。。.。。。.。。....。.....。.。.。.。。...。3
三、需求分析。..。。。。。。.。。.。..。。...。。。。。.。..。。.。。。。...。。。..。.。.。。。..。3
四、系统设计 .。..。.......。...。。。.。....。...。。.。。...。。....。..。。.....。.4
1、服务器结构 ..。。.。。..。...。。。.。。.。.。.。...。.....。.。.。。。。。.。。。。。。4
2、客户端结构 ..。.。.....。..。。。。。...。。.。..。。.。.。...。。。.。。..。.。.。。4
五、实现细节。。..。...。..。...。.....。。..。。..。。。。。。。。.。。。。....。。。..。。..5
1、客户端细节。。。.。。。..。。。。.。。...。。。。。..。.。。。。..。...。。。..。。。..。.。5
2、服务器细节 .。。。.。.。....。.。.。。..。。.。。.。。..。..。。。..。..。.。。.。。。..6
六、系统展示。...。.。。.。.。.。.。。.。。.。。。.。。..。。。。..。..。..。。..。。.。。。。 (7)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1.需求分析 (2)
2.相关知识............................................... - 3 -2.1W INSOCK介绍 (3)
2.2MFC类CA SYNCSOCKET和CS OCKET (3)
2.3利用CS OCKET进行有连接的通信 (4)
3.详细设计................................... 错误!未定义书签。
3.1客户端的实现 (4)
3.2服务端的实现 (8)
4.程序运行结果.......................................... - 13 -4.1服务器端 .. (13)
4.2客户端 (13)
5.参考文献 ................................................................................................................... 错误!未定义书签。
1.需求分析
当前是数字信息时代,网络时代,任何一种编辑工具都不能忽视在网络上的应用,并且随着Internet 的普及和宽带技术的成熟,越来越多的用户进入网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效,与此同时一个新型的Web应用程序为网民之间提供了一个实时通信的功能和场所,这就是聊天室。
在网络早期就开始盛行,不论是BBS,IRC 都有类似网上聊天室的机制。聊天室为网友提供了实时性对话的渠道,是网络上极为流行的一项服务。
聊天室适用于网上会议或闲聊的一些场合。聊天室为网友提供了较好的交友环境,网友之间相互以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是网上交友之所以如此热门的原因。
聊天室的设计目标
本课题是建立聊天通信模型,设计一个聊天室软件,包括服务器端和客户端,主要功能为:
服务器端功能:
1、初始化socket, 创建服务器端。
2、维护一个链表,保存所有用户的IP地址、端口信息。
3、接受用户传送来的聊天信息,然后向链表中的所用用户转发。
4、接受用户传送来的连接判断命令,并向用户发出响应命令。
客户端功能:
客户端界面上的两个文本框,一个用于显示接受的聊天信息,一个用来接受用户输入的聊天信息。当按下“发送”按钮时将信息发送给服务器。
通过本课题的毕业设计,可以比较深入的了解和掌握WINSOCK控件基本属性、方法和事件,理解网络聊天通信的概念,输控制协议(TCP)进行数据交流,初步掌握网络聊天通信程序的设计方法。并能巩固和扩展大学期间的学习内容,进行项目的设计开发训练,更好的适应社会的需求。
2.相关知识
2.1 Winsock介绍
Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。
Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows Sockets 也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。
2.2 MFC类CAsyncsocket和CSocket
构造一个 CAsyncSocket 对象并使用该对象创建基础 SOCKET 句柄。
套接字的创建遵循两阶段构造的 MFC 模式。
例如:
CAsyncSocket sock;sock.Create( ); // Use the default parameters
对于服务器套接字,必须指定端口。对于客户端套接字,通常接受此参数的默认值,该值允许 Windows Sockets 选择端口。
套接字类型: SOCK_STREAM (默认值)或 SOCK_DGRAM 。
套接字“地址”,如“”或“128.56.22.8”。
该地址为网络上的网际协议 (IP) 地址。很可能要始终依赖此参数的默认值。
如果套接字是客户端,则使用 CAsyncSocket::Connect 将此套接字对象连接到服务器套接字。
销毁 CAsyncSocket 对象。
如果在堆栈上创建了套接字对象,当包含函数超出范围时将调用此对象的析构函数。如果使用 new 运算符在堆上创建了套接字对象,则必须负责使用 delete 运算符销毁此对象。
“阻塞”方案。
发送和接收计算机之间的字节顺序差异。
在Unicode 和多字节字符集(MBCS) 字符串之间转换。
2.3 利用CSocket进行有连接的通信
CAsyncSocket类逐个封装了WinSock API,为高级网络程序员提供了更加有力而灵活的方法。这个类基于程序员了解网络通讯的假设,目的是为了在MFC中使用WinSock,程序员有责任处理诸如阻塞、字节顺序和在Unicode与MBCS 间转换字符的任务。为了提供更方便的接口以自动处理这些任务,MFC给出了CSocket类,这个类是由CAsyncSocket类继承下来的,它提供了比CAsyncSocket更高层的WinSock API接口。Csocket类和CsocketFile类可以与Carchive类一起合作来管理发送和接收的数据,这使管理数据收发更加便利。CSocket对象提供阻塞模式,这对于Carchive的同步操作是至关重要的。阻塞函数(如Receive()、Send()、ReceiveFrom()、SendTo() 和Accept())直到操作完成后才返回控制权。
3.1客户端的实现
(1)首先启动Visual C++ 6.0,利用MFC AppWizard[EXE]建立一个新的MFC工程,工程名为tcpclient,在MFC AppWizard Step1的时候选择Dialog based 即基于对话框,在Step4时勾选Windows Sockets选项(如图3.11),其他默认值下一步。