下载此文档

TCP文件传输程序设计书.docx


文档分类:IT计算机 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
TCP文件传输程序设计书.docxTCP文件传输程序设计书
一、实验名称: TCP文件传输程序
二、实验要求
1、设计一个应用程序,该应用程序能够实现网络中两台计算机之间传输文件。
2、一个程序既能够建立服务器又能够以终端的形式连接服务器。
3、终端或者服务器既能够发送文件又能够接收文件。
4、传送文件类型应为任何类型,文件大小为任意。
三、总体规划
1、网络传输协议的选择
TCP/IP协议栈中,有两个高级协议是我们网络应用程序编写者应该了解的,它
" 传输控制协议 " ( Transmission Control Protocol, 简称 TCP)和 " 用户数据报协议
" ( User Datagrm Protocol, 简称 UDP)。
TCP是面向连接的通信协议, TCP提供两台计算机之间的可靠无错的数据传输。应
用程序利用 TCP进行通信时, 源和目标之间会建立一个虚拟连接。 这个连接一但建立,
两台计算机之间就可以把数据当作一个双向字节流进行交换。
UDP是无连接通信协议, UDP不保证可靠数据的传输,但能够向若干个目标发送数
据,接收发自若干个源的数据。简单地说,如果一个主机向另外一台主机发送数据,
这一数据就会立即发出, 而不管另外一台主机是否已准备接收数据。 如果另外一台主机收到了数据,它不会确认收到与否。
为了使两台计算机之间传输的文件数据不会丢失或发生错误, 应该采用 TCP协议。2、 TCP协议在 VC++中的实现
在VC++中,网络协议的实现有以下几种方式:
a、采用 WinSocket API 函数。
API函数中提供了基本 Socket 的系统调用,具体实现方法为服务器端首先要调用 socket() 函数建立一个流式套接字, 用 bind() 函数与本机的一个端口建立关联, 继续调用 listen() 函数将套接字置于被动的侦听方式以监听连接, 然后调用 accept() 函数
进入等待状态之后才可以接收来自客户端的请求,一旦接收到客户端通过 connect 发
出的连接请求,accept 将返回一个新的套接字描述符。 通过此套接字描述符调用 send()
或 recv() 函数即可与客户端进行数据收发。待数据传送完成,服务器客户端调用
closesocket() 关闭套接字。
该方法在编程过程中需要注意 socket 连接的整个过程,编程工作量大,编程效率
低,单却可以加深对网络协议的认识。
程序流程示意图如下:
.专业 . 专注 .
Socket()
Bind()
Listen() Socket()
Accept() Connect()
Send()/recv() Send()/recv()
Closesocket() Closesocket()
b、采用 VC++中提供的 MFC类, CAsyncSocket或CSocket.
两个类都对 WinSocket API进行了封装,CSocket对它的封装比 CAsyncSocket更深,使得对于从未接触过 WinSockets API 的编程程序员,也能够编写网络程序。
而本程序也是采用了 CSocket类进行编程。
3、传输数据的缓冲问题
本机要传给对方的文件不是从外存直接通过网络发送的, 而对方发送的数据也不是直接存入外存的。而是在存中开辟一块缓冲区,从外存取出的文件先存入缓冲区,然后传给 socket 。而从 socket 接收的数据也是先存入缓冲区然后再存到外存。
为了解决缓冲问题, VC++添加了 CArchive 类,CArchive 类专门用来管理一块存单元,其大小可以自己来定义。用 CArhive 类既以把数据载入分配的存区,又可以将存区的数据存入文件。 在该类的对象初始化时, 需要和某个文件建立连接, 这样数据就可以载入或存储了。
4、 Socket 的文件化管理
在大多数编程环境和编程语言多把 socket 看作一个特殊的文件, 其传输过程就可
以看作是对文件的读写操作。而 VC++也是如此。
为了便于网络 Socket 的管理,在 VC++中,可以对网络 Socket 实现文件化管理。为了实现该功能, 需要用到 VC++中的类 CSocketFile 类,该类直接派生于 CFile 类,使用该类可以达到对 Socket 文件化管理的目的。如 CSocket

TCP文件传输程序设计书 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数18
  • 收藏数0 收藏
  • 顶次数0
  • 上传人书生教育
  • 文件大小136 KB
  • 时间2021-01-11