1、 1 课课 程程 设设 计计 说说 明明 书书 题目名称题目名称 TCP 文件传输程序文件传输程序 院(系)院(系) 计算机科学技术学院计算机科学技术学院 专业(班级)专业(班级) 学生姓名学生姓名 指导教师指导教师 起止日期起止日期 2012-12-292013-1-6 2 目目 录录 一 课题背景3 二 开发环境及相关技术3 三 设计流程图3 四 核心程序的实现4 五 文件运行界面7 六 设计总结10 七 参考文献10 八 附录代码11 3 一、一、课题背景课题背景 在这个信息化时代, 计算机网络技术的迅猛发展影响了几乎包括政治、 文化、 生活、经济在内的每一个角落,推动了人类社会向信息化
2、社会的逐步转变;同时 我们也应该清醒地认识到文件传输的问题是计算机网络发展过程中的一个不容 忽视的问题。在如今拥塞的网络上,各种数据在争夺着网络资源,如何使传输的 文件更加可靠的到达目的地, 同时如何友好的解决文件分类分组高效传输等问题 都是需要有待提高和完善的地方。其中以 TCP 快捷的优点赢得好多人的称赞。 二、开发环境及相关技术二、开发环境及相关技术 2.1 开发环境 VisualC+6.0 简介 Visual C+ 6.0,简称 VC 或者 VC6.0,是微软推出的一款 C+编译器,将“高 级语言”翻译为机器语言(低级语言) ”的程序。Visual C+是一个功能强大的 可视化软件开发
3、工具。自 1993 年 Microsoft 公司推出 Visual C+1.0 后,随着 其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。 虽然微软公司推出了 Visual C+.NET(Visual C+7.0),但它的应用有很大的局 限性,只适用于 Windows 2000、Windows XP 和 Windows NT4.0。所以实际中, 更多的是以 Visual C+6.0 为平台。 2.2 基于 VC 的 socket 网络编程原理 套接字 socket 是一种网络编程接口,实际就是一个通信端点,提供的发送 和接收数据的机制。 套接字最基本的分为两类:流
4、套接字和数据报套接字。流套接字:顺序 的、无重复的、面向连接的可靠双向传输机制,主要用于 TCP 通信程序;数据 报套接字:无连接的,不保证顺序、无重复、可靠的双向传输,主要用于 UDP 的通信程序。 2.3TCP 协议简介 三、设计三、设计流程图流程图 本设计基本设计图如下: 4 基本设计流程图: 四、核心程序的实现四、核心程序的实现 server 接收 TCP 连接的处理过程: 函数名称 : AcceptProcess void CServerModel:AcceptProcess() SOCKADDR_IN _sin; 客户端 服务器 数据传输 控制字传输 5 int _size = s
5、izeof(SOCKADDR_IN); if( (_connectedSock = accept(_localSock, (sockaddr *) else _strRemoteAddr = inet_ntoa(_sin.sin_addr);/保存远机地 址 _state = CONNECTED; /改变模型状态 :SendMessage(m_hWnd, CONNECT_SUCCESS, 0, 0); BeginMessageThread(); /开启消息监听线程 client 函数功能连接服务器: void CClientModel:ConnectProcess() SOCKADDR_IN _sin; _sin.sin_family = AF_INET; _sin.sin_port = htons(_port); _sin.sin_addr.s_addr = inet_addr(_strRemoteAddr);/inet_addr(_strAddress); if (connect(_connectedSock, (SOCKADDR *) else _state = CONNECTED; :SendM