局域网聊天系统的设计与实现毕业设计论文(编辑修改稿)内容摘要:
PTUREPARAMS 主要包含一些获取图像的参数: DWORD dwRequestMicroSecPerFrame 代表相邻两个 frame 的获取时 间间隔; BOOL fYield值为 TRUE,则表示 Windows 会以另一个 thread 来捕获影像,值为 FALSE,程序会在捕捉影像后显示忙碌状态; BOOL fCaptureAudio 其值表示是否需要同时获取声音资料。 结构体 BITMAPINFO 和点阵图有关,主要定义了影像获取之后显示在屏幕上、存储在文件中的格式,它包含两个成员: BITMAPINFOHEADER bmiHeader 描述影像性质的结构,其成员记载了影像的大小、颜色深度和压缩的方式,该成员在Video Capture、 Video Compression Manager 和 DrawDib 函数库中,以及有关于点阵图的应用中; RGBQUAD bmiColors 指向 color table 第一个元素的位置。 局域网聊天系统的设计与实现毕业设计 12 结构体 COMPVARS 主要是记录所有和压缩相关的信息,重要的成员: DWORD fccHandler 为 pressor 句柄; LPBITMAPINFO lpbiIn 指向待压缩影像BITMAPINFO 的指标; LPBITMAPINFO lpbitOut:指向压缩完影像 BITMAPINFO 的指标; LONG lKey 代表 keyframe rate,而所谓 key frame 是指此 frame 在解压缩时不需要依赖前面的 frame; LONG lQ 代表影像压缩后的品质,取值为 1~ 10000的整数。 Video Compression Functions 主要记录压缩功能相关的信息,其包含的比较重要的成员: ICLocate 输入指向压缩前后 BITMAPINFO 的指标,以及欲使用的codecs; ICCompressorChoose 呼叫一个系统内建的对话,其中包含所有可能使用的 codes 以及其相关参数; ICCompressQuery 询问 pressor 是否支持某种压缩方式,输入参 数为 pressor handle 及指向压缩前后 BITMAPINFO 的指标,此函数会传回询问结果; ICCompressBegin要求系统准备相关资源以供压缩之用;ICCompress 压缩某个 frame; ICCompressEnd 归还相关资源给系统;ICDompressQuery 询问 depressor 是否支持某种解压缩方式;ICDompressBegin 要求系统准备相关资源以供解压缩之用; ICDompress 解压缩某一个 frame; ICDompressEnd归还相关资源给系统; ICDompressFree归还 COMPVARS所占用的资源。 VC++ 简介 我们通常所说的 Visual C++实际上是一个完善的、非常强大的 C++程序开发环境,它的名字是 Microsoft Developer Studio。 二者之间的细小差别并不重要,通常这两个术语可以互换。 但如果你不围绕 Developer Studio 来进行学习,就不能有效地使用 Visual C++( Developer Studio 听起来很像 Visual Studio , 但它们之间没有关系)。 它包含: C++编译器、调试器、应用程序框架 生成器、项目管理器、设计和实现菜单等资源的编辑器等等。 局域网聊天系统的设计与实现毕业设计 13 第三章 系统功能分析 系统功能模块图 图 系统功能模块图 文字聊天 文字聊天采用的是 TCP 模式,包括服务器端( server) 和客户端 (client)。 首先启动服务器端,客户端通过用户名和密码登录服务器,服务器响应客户端登录并提示有用户登录,此时两个用户就可以进行文字聊天,在文字聊天时信息通过服务器中转,而每个用户可以同时与多个用户进行文字聊天。 当有用户退出时,服务器做出响应,提示在线用户 ,下线用户。 文字聊天流程图如图。 局域网聊天系统的设计与实现毕业设计 14 图 文字聊天流程图 语音视频聊天 语音视频聊天时采用的是 UDP 模式,客户端与客户端点对点的进行,不需要经过服务器端中转。 在文字聊天的基础上,客户端之间可以进行自行处理的语音视频聊天,运用VFW 函数库中的函数对 USB 口输入的数字视频信息进行相关处理 ,比如 :视频捕获、影像压缩以及影像播放等,同时利用线程来处理声音部分的录制、回放等。 A客户端向 B客户端请求语音视频聊天是通过 B客户端的用户名来获得 B 客局域网聊天系统的设计与实现毕业设计 15 户端的 IP 地址,并向 B 客户端发送语音视频聊天请求,当 B客户端接受后捕获视频,并进行压缩传输到 A客户端解压并进行播放,在 B客户端接受视频的同时,A客户端也捕获视频,压缩传输到 B客户端解压并进行显示。 语音视频聊天流程图如图。 图 语音视频聊天流程图 局域网聊天系统的设计与实现毕业设计 16 系统特点 程序较小,启动速度快。 启动后的应用界面要清爽,设计要简单明了,具有较高的易用性。 在遇到可预知的故障与情况时,能提示用户并自动退出。 在遇到不可预知的故障时能安全退出。 运行环境 硬件环境: 计算机两台,如下: CPU: 1GHz 以上 内存: 256MB 以上 硬盘 : 20GB 以上 其它:分别配有摄像头、麦克风、音响或者耳机等外部设备 软件环境: Windows XP/7操作系统 Microsoft Visual Stdio 性能需求分析 1. 可靠性高 能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器不在线等,可以提示用户安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出程序。 在程序的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。 2. 宜操作性,程序简单易懂,用户能很容易看懂并使用。 局域网聊天系统的设计与实现毕业设计 17 界面设计 服务器登录界面 图 服务器登录界面 用户登录界面 图 用户 登录界面 局域网聊天系统的设计与实现毕业设计 18 用户登陆后界面 图 用户登录后的界面 第四章 详细设计及编码实现 局域网聊天系统的设计与实现毕业设计 19 TCP 套接字的运用 在文字聊天时 ,服务器端与客户端的连接是采用的 TCP 套接节进行连接。 TCP套接字的使用如下图。 创建 CSocket 对象 CSocketServer 来处理服务器端与客户端的连接, CSocket 继承于 CasyncSocket,是 Windows Socket API 的高层抽象。 CSocket 通常和 CsocketFile 以及 Carchive 类混合使用,这两个类负责数据的发送和接收。 要使用 CSocket 对象,首先要调用构造函数,然后调用 Create函数创建一个 Socket 句柄。 CSocket 函数缺省是创建一个流 Socket;如果没有使用 CArchive 类,那么还可以创建一个数据报 Socket。 服务器端调用 Accept,客户端调用 Connect,然后创建一个 CsocketFile 去关联 CSocket。 接下来的操作可以创建 CArchive 对象关联 CsocketFile,以用来发送和接收数据。 图 TCP 套接字的运用图 文字聊天的实现 局域网聊天系统的设计与实现毕业设计 20 ChatServer 服务器运行时,利用一个 CSocket 对象 CSocketServer 启动服务器,用函数 gethostname 来获得服务器端主机名和 IP,同时在服务器对话框中显示服务器 IP,并将分配的固定端口号 8123 显示在对话框中。 用一个 list列表显示在线用户,随时更新用户登录情况,用一个 edit box 显示客户端的聊天内容以及系统提示消息。 每一个 ChatClient 客户端启动时,利用服务器内定的用户号和密码来登录。 在整个系统中,利用链表来处理所有的用户信息:当有用户登录时,在链表尾部加入该用户信息;当用户下线时,在该链表中删除用户,并提示所有用户,该用户下线。 在对链表进行操作的同时,要更新 list 列表中的信息。 图 需要使用指定的用户名密码登录 图 服务器运行后界面 局域网聊天系统的设计与实现毕业设计 21 当用 户登陆后服务器显示了该用户的登录,并且记录了当前在线用户的人数。 用户之间两两间进行文字聊天时,发送信息的处理函数如下: void CChatClientDlg::OnChatBtSend() //发送信息按键 { if( !m_bConnect) { SetMessageBox(请连接服务器 !\r\n)。 return。 } CString str。 CString szUserName。 CMesg msg。 GetDlgItemText(IDC_MESSAGE,str)。 GetDlgItemText(IDC_USERNAME,szUserName)。 if( () = 0 ) { SetMessageBox(请输入想要发送的信息 !\r\n)。 return。 } if ( () = 0) { SetMessageBox(请选择说话对象 !\r\n)。 return。 } //消息封装 (Message)。 (szUserName)。 (str)。 m_csClientSendM(amp。 msg)。 局域网聊天系统的设计与实现毕业设计 22 AddReceiver(szUserName , true)。 AddChatMessage(str)。 } 下图为两个用户之间的文字聊天以及服务器上的显示 图 用户 heteng 对 aaa发送的文字信息 图 用户 aaa接受到 heteng所发出的文字信息 局域网聊天系统的设计与实现毕业设计 23 图 服务器所显示两个用户之间的文字对话 语音视频聊天的实现 在实现语音视频聊天时 ,采用的是基于 UDP 套接字的点对点模式 ,即用户与用户之间的数据传输。局域网聊天系统的设计与实现毕业设计论文(编辑修改稿)
相关推荐
( c)、二次衬砌施工 本隧道二次衬砌采用全液压式模板衬砌台车施工,左右洞同一断面同时浇筑。 其施工程序是两洞同时使全液压衬砌台车就位并架立端头模板施做施工缝、沉降缝防水,最后两个洞同时从两个拱脚向拱顶浇筑砼。 详见本章第十节 关键施工技术及工艺 (六)、 隧道混凝土路面施工 砼路面施工采用真空吸水工艺,按设计结构分缝位置进行分块、分段施工。 砼 在拌和站集中拌和,用砼输送车运至现场,摊铺机摊铺
式模板衬砌台车施工,左右洞同一断面同时浇筑。 其施工程序是两洞同时使全液压衬砌台车就位并架立端头模板施做施工缝、沉降缝防水,最后两个洞同时从两个拱脚向拱顶浇筑砼。 详见本章第十节 关键施工技术及工艺 (六)、 隧道混凝土路面施工 砼路面施工采用真空吸水工艺,按设计结构分缝位置进行分 块、分段施工。 砼在拌和站集中拌和,用砼输送车运至现场,摊铺机摊铺。 模板采用自制定型钢模。 摊铺、振捣、抹平
1 镀锌预剥操作台 (中) 台 1 预剥操作台(下) 台 1 4 洗手刀具消毒器 台 5 5 转挂操作台 台 1 6 电动葫芦 台 1 7 双滑轮手推线 米 113 8 扯皮机 台 1 前腿固定架 台 1 扯皮升降工作台 台 2 9 出红白脏操作台 台 1 1 1 10 开胸锯 台 1 11 红内脏滑槽 台 1 12 卫检台 台 1 13 白内脏滑槽 台 1 14 劈半锯 台 1 1 1
用工装设备的准备、专用工装设备的设计与制造、生产计划的编排、经济核算等工作。 生产中对工人业务的考核也是以工艺规程为主要依据。 ( 3) 它是新建和扩建工厂的基本资料 新建和扩建工厂或车间时,要根据工艺规程来确定所需要的机床设备的品种和数量、机床的布置、占地面积、辅助部门的安排等。 工艺规程的制定原则 工艺规程的制定原则:所制定的工艺规程,能在一定的生产条件下,以最快的速度
长。 12 月 8 日,军政府各要员在东校场检阅军队时,被前四川都督赵尔丰操纵的第十一营带头闹事,后一队巡防军又拥进东校场吵闹、开枪,现场一片混乱,军政府都督蒲殿俊等相继逃遁,而尹昌 衡则凭借其过人胆识及出众的军事才能,平定了 成都兵变,后又用计擒杀了有“屠夫”称号的赵尔丰。 这些事,使得尹昌衡的声望越来越高,以至于“藏族人民,都认为尹昌衡是亲自捕杀赵尔丰的人,畏其威势,望风慑服
...............................................................................29 测试的重要性及目的 ............................................................................................29 测试的步骤 ......