网络编程技术
网络编程技术
大作业大作业
项目开
发人
项目名
称
杨腾飞
开发人
班级
2010-2
开发人
学号
2010082225
MFC 实现局域网内点对点的文件传输
开发人专
软件工
业
成绩
程
(70%)
网络编程技术大作业
版本:0.1.0 第 2页
修 改 履 历
修改编号
日期
1
2
3
2013.5.24
2013.5.25
2013.5.26
修改人
杨腾飞
杨腾飞
杨腾飞
版本号
修改内容
1.0
1.1
1.2
编写需求分析
修改模块接口设计
编写自我评价
TCP/IP 协议的概述
TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制
协议/因特网互联协议,又叫网络通讯协议,这个协议是 Internet 最基本的协议、Internet 国
际互联网络的基础,简单地说,就是由网络层的 IP 协议和传输层的 TCP 协议组成的。TCP/IP
协议使用范围极广,是目前异种网络通信使用的唯一协议体系,适用于连接多种机型,既可
用于局域网,又可用于广域网,许多厂商的计算机操作系统和网络操作系统产品都采用或含
有 TCP/IP 协议。TCP/IP 协议已成为目前事实上的国际标准和工业标准。基于 TCP/IP 协议组
的网络模型分为应用层、传输层、网络层、链路层和物理层这样五个层次。TCP/IP 协议组位
于应用程序和硬件之间,指挥数据在网络各层中传递。其中传输层的协议包括传输控制协议
(TCP)和用户数据报协议(UDP) ,它们都建立在 IP 协议的基础上,其中 TCP 提供可靠的面向
连接服务,UDP 提供简单的无连接服务。传输层提供端到端,即应用程序之间的通信,主要
功能是数据格式化、数据确认和丢失重传等。TCP 协议是面向连接的协议,它提供可靠的字节
流服务,在进行数据传输之前必须先建立连接,经三次握手确定后才开始数据传送。UDP 进行
数据报传输使用的是不可靠、无连接的协议。网络层包括互连网协议 IP,互连网控制报文协
议 ICMP 和互连网组管理协议 IGMP。其中 IP 协议完成大部分的工作,负责数据传输和路由的
选择等。I P 报头中的地址和网卡相联系( 具体还涉及地址解析和反向地址解析协议),TCP 、
UDP 报头中的端口号侧对应着网络主机上不同的程序。TCP/IP 体系结构如图一所示:
网络编程技术大作业
版本:0.1.0 第 3页
TCP/IP 体系结构
Socket 通常也称作"套接字",用于描述 IP 地址和端口,是一个通信链的句柄。应用程
序通常通过"套接字"向网络发出请求或者应答网络请求。Socket 接口是 TCP/IP 网络的 API,
Socket 接口定义了许多函数或例程,程序员可以用它们来开发 TCP/IP 网络上的应用程序。
尽管 TCP/IP 协议的名称中只有 TCP 这个协议名,但是在 TCP/IP 的传输层同时存在 TCP 和 UDP
两个协议。
TCP 是一种面向连接的保证可靠传输的协议。通过 TCP 协议传输,得到的是一个顺序的
无差错的数据流。发送方和接收方的成对的两个 socket 之间必须建立连接,以便在 TCP 协议
的基础上进行通信,当一个 socket(通常都是 server socket)等待建立连接时,另一个 socket
可以要求进行连接,一旦这两个 socket 连接起来,它们就可以进行双向数据传输,双方都可
以进行发送或接收操作。
网络编程技术大作业
版本:0.1.0 第 4页
目 录
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 数据格式 ............................................................................................................... 错误!未定义书签。
3.3 会话举例 ..................................................................................................................................................7
4 系统设计说明 ......................................................................................................................................................9
4.1 模块整体结构图 ......................................................................................................................................9
4.2 使用说明书 ..............................................................................................................................................9
5 模块详细说明 ......................................................................................................................................................9
5.1 核心通信模块 ..........................................................................................................................................9
5.1.1
5.1.2
socket 函数的功能....................................................................................错误!未定义书签。
通信时序图............................................................................................... 错误!未定义书签。
5.2 用户接口模块 ....................................................................................................... 错误!未定义书签。
5.3 类/接口/函数说明 ................................................................................................. 错误!未定义书签。
6 结论 ....................................................................................................................................................................13
6.1 自我评价或总结 ....................................................................................................................................13
6.2 需要进一步学习的内容 ........................................................................................................................13
6.3 系统扩展计划 ........................................................................................................................................13
网络编程技术大作业
1 文档概述
1.1 文档目的和范围
版本:0.1.0 第 5页
明确任务和需求,使得软件开发人员知道软件开发流程,软件测试时更有条理。
1.2 术语/缩略语
序 号 术语/缩略语 说明
1
2
3
4
5
应用程序编程接口
API
Socket
IP
Client/Server 客户机/服务器模式
Winsock
网络套接口
IP 是英文 Internet Protocol(网络之间互联的协议)的缩写
Windows 下网络编程的规范
1.3 参考文档
序 号 文档名
作者
时间
版本
1
Windows 网络编程
罗莉琴 詹祖桥 2011 年 4 月 第 1 版
2 系统概述
2.1 项目说明
本软件是把客户端和服务器集为一体,通过 tcp 协议,实现可靠的文件传输功能。
运行环境:win7
2.2 需求分析
该程序实现局域网内的文件传输功能,包括服务器端程序和客户端程序两部分。
客户端程序:可连接到服务器,并将文件发送到服务器端和接受服务器端发送来的文件。
服务器端程序:负责相应客户端的消息和接收客户端发送来的文件。
网络编程技术大作业
2.3 可行性或难点分析
版本:0.1.0 第 6页
本软件的难点在于进行文件传输时只能传送较小的文件,对于大文件的传输还有部分
问题尚待解决。此外,传输文件时的效率较低,程序容易出现假死现象,所以考虑到如果使
用多线程应该能提高效率,但是基于自身能力和时间问题,这部分优化没有做,只是完成了
基本的文件传输功能。
3 通信协议设计
3.1 通信流程
网络编程技术大作业
3.2 会话举例
版本:0.1.0 第 7页
1.选择服务器端的话会自动获取本机 IP,可以自定义端口号。然后点击“启动”按钮,可以开启服务器监
听有无客户端连接。
2.选择客户端可以自己输入要连接的服务器的 IP 地址和端口号。点击“连接”按钮,可以连接到服务器,
然后“选择文件”按钮才可以被点击。
3.服务器和客户端连接后的状态如下所示:
网络编程技术大作业
版本:0.1.0 第 8页
4.选择一个文件后点击发送,文件接收成功后会出现提示框。