基于VC 的Winsock 的文件传输程序的设计

通信网络设计课程设计题目:S5基于VC的Winsock的文件传输程序的设计环境要求:Windows95/98/2000/XP功能要求:能将键盘上指定的文件发送到另一台计算机上;能将接收到的数据显示到屏幕窗口内,并显示收到文件的字节数和文件传输速率;一、设计目标用TC、VisualBASIC、VisualC++、Java等编程工具和路由器、交换机、主机等网络设备提供的接口,解决网络用户之间的交互式对话问题,或计算通信网络的延迟、信道容量分配,或编码分析、通信协议分析,网络互连互通、网络规划。进一步深入掌握网络设计和通信程序的设计原理。使学生对计算机通信网络的设计实现有较深的了解,培养较高的通信网络设计能力。本课设实验将基于2013版VisualStudio进行WINSOCK的文件传输的编程实现。在WINDOWS95/98,WINDOWSNT进行WINSOCK开发使用的编程语言有很多,VC++,JAVA,DELPHI,VB等。其中VC时使用最普遍,和WINSOCK结合最紧密的。并且VC++对原来的WindowsSockets库函数进行了一系列封装,继而产生了CAsynSocket、CSocket、CSocketFile等类,它们封装着有关Socket的各种功能,是编程变得更加简单。SOCKET实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有SOCKET接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个SOCKET接口来实现。在应用开发中就像使用文件句柄一样,可以对SOCKET句柄进行读,写操作。二、设计原理套接字(Socket)是一种网络编程接口,它是对通信端点的一种抽象,提供了一种发送和接收数据的机制。套接字有两种类型:流式套接字(StreamSockets)和数据报套接字(DatagramSockets)。数据报套接字提供了一种不可靠的、非连接的数据包通信方式,它使用用户数据报协议(UDP);而流式套接字可以将数据按顺序无重复地发送到目的地,它提供的是一种可靠的面向连接的数据传输方式。使用这种套接字可以保证数据传输的正确性,它使用的是传输控制协议(TCP)。本文将使用典型的面向连接的流式套接字。在VC中进行WINSOCK的API编程开发,需要使用到下面三个文件:1WINSOCK.H:这是WINSOCKAPI的头文件。2WSOCK32.LIB:WINSOCKAPI连接库文件。3WINSOCK.DLL:WINSOCK的动态连接库,位于WINDOWS的安装目录下。通信网络设计课程设计题目:S5WINSOCK接口在WINDOWS编程环境中的位置如下图所示:====================================可以看到,WINSOCK。DLL位于TCP/IP协议栈和应用程序之间。也就是说,WINSOCK管理与TCP/IP协议的接口。在网络编程中最常用的方案便是客户机/服务器模型。在这种方案中客户应用程序向服务器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务程序被“惊醒”并且为客户提供服务-对客户的请求作出适当的反应。虽然基于连接协议(流套接字)的服务是设计客户机/服务器应用程序时的标准,但有些服务也是可以通过无连接协议(数据报套接字)提供的。三、设计方法3.1流式套接字服务器端操作3.1.1初始化WinSock在使用WinSockAPI进行编程前,必须对它进行初始化,可用WSAStartup()函数来完成,只有此函数调用成功后,应用程序才可以再调用WindowsSock2ets中其他的API函数。该函数的原型如下:intWSAStartup(WORDwVersionRequested,LP2WSADATAlpWSAData);其中第一个参数指定了应用程序要使用的WinSock规范的最高版本;第二个参数指定了一个指向WSADATA结构的指针。通信网络设计课程设计题目:S5另外,WSACleanup()是结束WindowsSocketsDLL的使用。说明:当应用程序不再需要使用WindowsSocketsDLL时,须调用此函数来注销使用,以便释放其占用的资源。下面演示如何在程序中调用该函数。#include<winsock.h>//ForWinsock2,includewinsock2.hWORDwVersion;WSADATAwsaData;wVersion=MAKEWORD(1,1);//本机Socket版本号1.1interror=WSAStartup(wVersion,&wsaData);if(error){//在初始化时出错return;}if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1){//版本不一致,通知用户,调用WSACleanup()函数退出WSACleanup();return;}3.1.2创建套接字初...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?