- 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 添加自定义函数:
您可能关注的文档
- 寒假校本培训计划.docx
- 2021年度社区干部个人思想工作总结.docx
- 电务公司办公室XX年下半年工作总结和今后工作设想.docx
- 企业集团如何选择合适的资金集中管理方式.docx
- 分析师 苹果诉讼或令高通专利授权业务模式毁于一旦.docx
- 部门销售主管213年度工作安排范文.docx
- 小学一年级班主任工作计划第一学期格式.docx
- 有理数乘除知识点及练习.docx
- 钻探个人年度工作总结范文.docx
- 银行大堂经理工作总结报告格式.docx
- 2025年乡村特色农产品冷链仓储物流与电商平台融合报告.docx
- 夹具通用件压紧件 动套式快速夹紧器.pdf
- 高职单招高频难、易错点题附答案详解(考试直接用).docx
- 高中化学实验安全教育课程与学生安全意识提升研究教学研究课题报告.docx
- 2025年中国红木吸顶灯数据监测报告.docx
- 2025年乡村特色农产品冷链仓储物流中心信息化建设研究报告.docx
- 高职单招高频难、易错点题附答案详解【完整版】.docx
- 2025年乡村特色产品推广:民俗文化旅游跨境电商平台运营策略研究.docx
- 高职单招高频难、易错点题附答案详解(培优).docx
- 2025年英伟达新一代AI芯片性能对比深度研究报告.docx
最近下载
- 小学奥数教师版(合辑)1-1-2-3 分数四则混合运算综合.pdf VIP
- 小学奥数合辑(学生用书)1-1-2-3 分数四则混合运算综合.pdf VIP
- 心电监护操作流程课件(PPT 34张).pptx VIP
- 高考数学三年真题(2023-2025年)《统计与概率》真题分类汇编含答案.docx VIP
- 高斯小学奥数五年级上册含答案_分数应用题.doc VIP
- 药食同源发酵项目可行性研究报告建议书新建申请备案案例范文解读.doc VIP
- 2024年广东省高考政治试卷(真题+答案).pdf VIP
- 小学数学 奥数思维《计算:小数的巧算》专项训练2(含解析).docx VIP
- 智慧城市排水防涝系统改造与优化创新研究.docx VIP
- 核心稳定性与核心力量训练.ppt
文档评论(0)