- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[Socket网络编程大作业
网络编程技术
大作业
项目开发人 杨腾飞 开发人班级 2010-2 开发人学号 2010082225 开发人专业 软件工程 项目名称 MFC实现局域网内点对点的文件传输 成绩 (70%)
修 改 履 历
修改编号 日期 修改人 版本号 修改内容 1 2013.5.24 杨腾飞 1.0 编写需求分析 2 2013.5.25 杨腾飞 1.1 修改模块接口设计 3 2013.5.26 杨腾飞 1.2 编写自我评价
TCP/IP协议的概述
TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。
TCP/IP体系结构
Socket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过套接字向网络发出请求或者应答网络请求。Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。
目 录
1 文档概述 5
1.1 文档目的和范围 5
1.2 术语/缩略语 5
1.3 参考文档 5
2 系统概述 5
2.1 项目说明 5
2.2 需求分析 5
2.3 可行性或难点分析 6
3 通信协议设计 6
3.1 通信流程 6
3.2 数据格式 6
3.3 会话举例 6
4 系统设计说明 6
4.1 模块整体结构图 6
4.2 使用说明书 6
5 模块详细说明 6
5.1 核心通信模块 7
5.1.1 socket函数的功能 7
5.1.2 通信时序图 7
5.2 用户接口模块 7
5.3 类/接口/函数说明 7
6 结论 7
6.1 自我评价或总结 7
6.2 需要进一步学习的内容 7
6.3 系统扩展计划 7
文档概述
文档目的和范围
明确任务和需求使得软件开发人员知道软件开发流程,软件测试时更有条理1 API 应用程序编程接口 2 Socket 网络套接口 3 IP IP是英文Internet Protocol()的缩写Windows下网络编程的规范1 Windows网络编程 罗莉琴 詹祖桥2011年4月
第1版
运行环境:win7
需求分析
该程序实现局域网内的文件传输功能,包括服务器端程序和客户端程序两部分。
客户端程序:可连接到服务器,并将文件发送到服务器端和接受服务器端发送来的文件。
服务器端程序:负责相应客户端的消息和接收客户端发送来的文件。
可行性或难点分析
本软件的难点在于进行文件传输时只能传送较小的文件,对于大文件的传输还有部分问题尚待解决。此外,传输文件时的效率较低,程序容易出现假死现象,所以考虑到如果使用多线程应该能提高效率,但是基于自身能力和时间问题,这部分优化没有做,只是完成了基本的文件传输功能。
通信协议设计
通信流程
会话举例
1.选择服务器端的话会自动获取本机IP,可以自定义端口号。然后点击“启动”按钮,可以开启服务器监听有无客户端连接。
2.选择客户端可以自己输入要连接的服务器的IP地址和端口号。点击“连接”按钮,可以连接到服务器,然后“选择文件”按钮才可以被点击。
3.服务器和客户端连接后的状态如下所示:
4.选择一个文件后点击发送,文件接收成功后会出现提示框。
系统设计说明
模块整体结构图
使用说明书
程序使用MFC做的界面,所以操作简单,直接用鼠标点击相应按钮即可。
模块详细说明
核心通信模块
该函数主要用于理文件的控制消息。void CFileTransfersDlg::SendFile(CSocket senSo)
{
m_bIsTransmitting = TRUE;
//打开要发送的文件
CFile file;
if(!file.Open(m_strPath, CFile::modeRead | CFile::typeBinary))
{
AfxMessageBox(_T(文件打开失败));
GetDlgItem(IDC_DISCONNECT)-EnableWindow(TRUE);
GetDlgItem(IDC_SELECT_FILE)-EnableWindow(TRUE);
GetDlgItem(IDC_STOP_TRANSFERS)-EnableWindow(FALSE);
senSo.Close();
return ;
}
m
文档评论(0)