网络编程文件传输实验报告.doc

网络编程文件传输实验报告.doc

ID:56199829

大小:168.32 KB

页数:9页

时间:2020-03-20

网络编程文件传输实验报告.doc_第1页
网络编程文件传输实验报告.doc_第2页
网络编程文件传输实验报告.doc_第3页
网络编程文件传输实验报告.doc_第4页
网络编程文件传输实验报告.doc_第5页
资源描述:

《网络编程文件传输实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《网络编程》实验报告课程名称:网络编程实验项目名称:网络编程班级:实验室名称:专业:网络工程任课教师:黄梅根学号:姓名:基于TCP的网络文件传输实验报告一、实验目的1、熟悉TCP/IP协议的功能和网络操作2、编写小型的socket应用程序,初步了解windows环境下使用sockets编程,实现点对点文本传输。二、实验原理本程序是基于TCP/IP协议栈的网络编程,使用C语言,利用操作系统提供的套接字网络编程接口进行编写TCP协议是其中重要的传输协议,为应用层提供可靠的端到端的流传输服务.其中套接字取值sock_stream即为

2、TCP的流传输服务Windowssocket包含了人们所熟悉的BerkeleySocket风格的函数库,也包含了一组针对windows的扩展库函数,以使程序员能充分的利用windows驱动消息机制进行编程。WindowsSockets的规范本意在于提供给应用开发者一套简单的API,并让个网络应用软件开发商遵守该协议。此外在一个特定的版本windows基础上,Windowssocket也定义了一个二进制借口(ABI),从此来保证WindowssocketAPI应用程序能够在任何符合Windowssocket协议的实现上工作。三、

3、设计概述1、创建套接字服务进程和客户进程在实现通信前必须创建各自的套接字,然后才能用相应的套接字进行发送接收操作,服务进程总是先于客户端进程启动,服务器端进程和客户端进程创建套接字。Socket()函数实现代码如下:SOCKETserSocket=socket(AF_INET,SOCK_STREAM,0);//创建了可识别套接字2、地址绑定当调用socket()创建套接字后,服务器必须把套接字与自己的地址显式地建立联系,以便客户端向该IP地址和端口号的服务进程请求服务,这个过程是通过调用函数bind()实现的。bind()函数

4、原型如下:intbind(SOCKETs,conststructsockaddrFAR*name,intnamelen);3、服务器套接字置为监听模式将服务器设置为监听工作方式后,使用API调用listen():intlisten(SOCKETs,intbacklog);第一个参数指定套接字。第二个参数指定了正在等待连接的最大队列长度。若无错误发生,则listen()函数返回0。1、建立连接,进行文件传输调用gets(path)获得传输文件的路径和存放文件路径,这个过程中还需调用send()函数和recv()函数,共同协调实现

5、文件传送。二、源代码服务器端#include#include#pragmacomment(lib,"ws2_32.lib")#defineSIZE1024*8voidmain(){//创建套接字WORDmyVersionRequest;WSADATAwsaData;myVersionRequest=MAKEWORD(1,1);interr;err=WSAStartup(myVersionRequest,&wsaData);if(!err){   printf("已打开套接字");}

6、else{   //进一步绑定套接字   printf("嵌套字未打开!");   return;}SOCKETserSocket=socket(AF_INET,SOCK_STREAM,0);//创建了可识别套接字//需要绑定的参数SOCKADDR_INaddr;addr.sin_family=AF_INET;addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//ip地址addr.sin_port=htons(6000);//绑定端口bind(serSocket,(SOCKADDR*)&a

7、ddr,sizeof(SOCKADDR));//绑定完成listen(serSocket,5);//其中第二个参数代表能够接收的最多的连接数////////////////////////////////////////////////////////////////////////////开始进行监听//////////////////////////////////////////////////////////////////////////SOCKADDR_INclientsocket;intlen=sizeof(SO

8、CKADDR);SOCKETserConn;charsendBuf[50];serConn=accept(serSocket,(SOCKADDR*)&clientsocket,&len);//如果这里不是accept而是conection的话。。就会不断的监听sprintf(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。