- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计报告之简易聊天软件的设计与实现
程序设计报告之简易聊天软件的设计与实现
( 2021 / 2021 学年 第 二 学期)
题 目: 简易聊天软件的设计与实现
学 生 姓 名 班 级 学 号 指 导 教 师
指 导 单 位 计算机学院计算机科学与技术系 日 期 2021年3月28日
简易聊天软件的设计与实现
二、课题内容和要求
1、课题内容:本课程设计主要是设计并实现一个简单的聊天程序, 创建基于多线程的聊天室程序。
2、课题要求:要求能够实现基本的聊天功能,本聊天室允许两台计算机之间进行聊天,但是需要获取进行聊天的两台机之间IP 地址,可以实现一对一的聊天。
1、该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。
客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送到的消息。 服务器端程序:负责发送用户列表和转发客户端发送过来的消息。 本程序涉及到服务器端和客户端,采用同一个套接字。
2、该聊天软件是采用UDP 连接,UDP 是OSI 参考模型中一种无连接的传输层协议,它提供了简单不可靠的信息传送服务。由于UDP 比较简单,UDP 包含很少的字节,所以它在速度方面有很大优势。很多常用的即时通软件,如QQ 程序,都会使用UDP 实现很多基本功能。UDP 是“面向非连接”的网络协议,它与“面向连接”的TCP 协议对应。在发送数据之前,并不与对方建立连接,而是直接把数据报发出去,不保证可靠的传输。UDP 相对TCP 简单,在速度方面有很大优势,因为它的网络开销少,对传输可靠性要求不是很高的情况下,UDP 的使用是网络程序的首选。
3、要实现聊天功能必须获取两台计算机的IP 地。在IP 地址控件栏输入参与聊天对象的计算机的IP 地址。
4、本程序的核心在于将消息的发送的和接收发在了两个不同的线程中,接收放在新创建的副进程中,因为其要一直处于响应状态,也就是需要一个while 循环;发送放在主线程中。这样消息的接收和发送就不存在先后顺序了,且一直处于循环中的接收也不会影响到发送。
5、程序代码中的新线程入口函数中可能没有必要传递两个参数进去,其中SOCKET 参数可以在入口函数内部创建, SOCKET变量也就是声明是TCP 还是UDP ,和发送或接收没有必
然的联系,如果这样的话,就没有必要声明“详细设计”第五步中的结构体了,CreateThread 方法也刚好传递一个参数,即当前窗口的句柄。
1、在VC++6.0中MFC 中创建新文档,选中基本对话框栏,然后进行对话框的设置,选择不同的控件,分别设置接收数据、发送数据和发送的控件。 2、对需要用的变量进行定义并初始化等。
3、实现不同的功能响应不同的消息处理函数,实现套接字绑定获取IP 地址等功能。 4、理解CWinApp 中的InitInstance 函数的用法及功能。 5、WSACleanup 函数的调用与终止等。 6、各种不同代码的功能与实现原理。
1、对需要用的变量进行定义或申明。
2、调用相应的MFC 内置函数,对相应的变量进行初始化等操作。 3、程序设计的概要流程图如下:
图1 程序设计流程图
1、创建一个基于对话框的MFC 程序设计,界面如下:
图2 对话框界面
2、添加套接字库头文件:
函数能准确保证程序终止前调用WSACleanup 的调用,该函数其实也是调用Win32中的WSAStartup ,该函数的调用位置最好在CWinApp 中的InitInstance 中,包含头文件Afxsock.h ,在StdAfx.h 这个头文件中调用MFC 的内置函数AfxSocketInit ,该函数其他也是调用Win32中的WSASAtartup ,该进行包含。StdAfx.h 头文件是一个预编译头文件,在该文件中包含了MFC 程序运行的一些必要的头文件,如afxwin.h 这样的MFC 核心头文件等。一些必要的头文件,如afxwin.h 这样的MFC 核心头文件等。它是一个被程序加载的文件。
3、加载套接字库:
在CWinApp 中的InitInstance 添加如下代码: if(FALSE==AfxSocketInit()) {
AfxMessageBox(套接字库加载失败!); return FALSE; }
4、创建套接字:
将自己假想成服务器端,进行套接字和地址结构的绑定,等待别人发送消息过来。
在CDialog 中
添加成员变量:SOCKET m_socket 添加自定义函数:
您可能关注的文档
最近下载
- 常见肿瘤分期手册第八版中文版.pdf VIP
- 中南15ZJ201《平屋面》( Word 可编辑版).docx
- 汉语言文学毕业自我鉴定(通用17篇).pdf VIP
- 退休人员派遣劳务合同8篇.docx VIP
- 《新时代劳动教育实践指导手册(四年级下册)》 《劳动快乐,我爱劳动》【四年级下册】(1)劳动价值观培养+(2)日常劳动我来干.pptx VIP
- 中职英语基础模块2(高教版)教案:Unit3-Internship(全6课时).doc
- 副总经理招聘面试题及回答建议(某大型央企).docx VIP
- 2024年智能建造技术.pptx
- 钢结构的安装PPT课件.ppt VIP
- 倪海厦--伤寒论.doc
文档评论(0)