- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络
实验报告
(TCP客户/服务器程序设计)
班级:XXXXXXX
学号:XXXXXXXXXXX
姓名:刘点
一、实验目的
实现在TCP方式下客户端向服务器端的文件传送过程。
二、实验性质
综合与设计性实验。
三、实验条件
装有以太网卡,配置网络协议的并能实现联网的两台微机。
四、实验要求
实现TCP的连接建立、文件传送和连接释放的三个阶段,并将任一文件传送到服务器端,编程完成该应用程序的设计(编程语言不限)。实验报告要求有实现过程的流程图,对主要的函数及其参数给予说明,要有实现过程的主要程序段,并对各段程序的功能及作用进行说明。
五、实验思想与过程
TCP协议属于传输层协议,通过面向连接、端到端和可靠的数据包发送。在此,利用C语言MFC AppWizard实现简单的不同客户交流。
客户端:
1)使用MFC AppWizard创建客户端应用程序框架。
2)为对话框界面添加控件对象
在创建了应用程序骨架之后,可以布置程序的主对话框。利用控件面板可以方便地在程序的主对话框界面中添加相应的可视控件对象
3)为对话框中的控件对象定义相应的成员变量
4)创建从CAsyncSocket类继承的派生类
为了能够捕获并响应socket事件,应创建用户自己的套接字类,它应当从CAsyncSocket类派生,还能将套接字事件传递给对话框,以便执行用户自己的事件处理函数。利用类向导ClassWizard为这个套接字类添加响应消息的事件处理成员函数。为套接字类添加一般的成员函数和成员变量
5)添加的代码
在CTcDlg对话框类的tcDlg.h中添加对于CSocket.h的包含命令,来获得对于套接字支持: #include “CSocket.h”
在CTcDlg对话框类的TcDlg.cpp中添加对于控件变量的初始化代码:
// TODO: Add extra initialization here
//用户添加的控件变量的初始化代码
BOOL CTcDlg::OnInitDialog()
{
m_strServName=localhost; // 服务器名 = localhost
m_nServPort=1000; // 服务端口 = 1000
UpdateData(FALSE); // 更新用户界面
//设置套接字类的对话框指针成员变量
m_sConnectSocket.SetParent(this);
}
6)添加事件函数和成员函数的代码
主要在CTcDlg对话框类的tcDlg.cpp中和CCSocket类的Csocket.cpp中,添加用户自己的事件函数和成员函数的代码。
7)进行测试。
测试应分步进行,在上面的步骤中,每作一步,都可以试着编译执行。
六、部分代码及其说明
// CSocket.cpp: implementation of the CCSocket class.
//
//////////////////////////////////////////////////////////////////////
#include stdafx.h
#include ts.h
#include CSocket.h
#include tsDlg.h
#include Msg.h
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//构造函数
CCSocket::CCSocket(CTsDlg* pDlg)
{
m_pDlg = pDlg;
m_pFile = NULL;
m_pArchiveIn = NULL;
m_pArchiveOut = NULL;
}
//析构函数
CCSocket::~CCSocket()
{
m_pDlg = NULL;
if (m_pArchiveOut != NULL) delete m_pArchiveOut;
if (m_pArchiveIn != NULL) delete m_pArchiveIn;
if (m_pFile != NULL) delete m_pFile;
}
//初始化
void CC
您可能关注的文档
- 在中嵌入一个flv.doc
- 在国际贸易中中美关系.doc
- 在实验中寻找规律练.doc
- 在技能比赛中促进体育教师专业发展的思考与实践.doc
- 在服装设计专业人才培养体系中应用CDIO理念的思考.doc
- 在济南开美容院加盟店不会取名注定没人气.docx
- 在线培训需求调研表.doc
- 在线温度监控系统上位机软件设计.doc
- 在设计院如何学习东西.doc
- 在阅读教学中加强学生语言运用能力.doc
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)