ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:195.05KB ,
资源ID:879756      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-879756.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高性能计算机网络实验报告.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

高性能计算机网络实验报告.doc

1、实验课程名称: 高性能计算机网络 实验项目名称基于TCP的网络文件传输实验成绩实验者XX专业班级计算机06311班组别同组者实验日期2015年1月10日第一部分:实验分析与设计一、 实验内容描述(问题域描述)内容:综合运用网络协议、编程语言、API和图形界面实现基于TCP协议建立、监听、连接、发送数据和接收数据的网络通信程序。目的:熟悉TCP/IP协议的功能和网络操作,初步了解windows环境下使用网络编程实现点对点文本传输。二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)本程序是基于TCP/IP协议栈的网络编程,使用C语言,利用操作系统提供的

2、套接字网络编程接口进行编写TCP协议是其中重要的传输协议,为应用层提供可靠的端到端的流传输服务.其中套接字取值sock_stream即为TCP的流传输服务Windowssocket包含了人们所熟悉的BerkeleySocket风格的函数库,也包含了一组针对windows的扩展库函数,以使程序员能充分的利用windows驱动消息机制进行编程。WindowsSockets的规范本意在于提供给应用开发者一套简单的API,并让个网络应用软件开发商遵守该协议。此外在一个特定的版本windows基础上,Windowssocket也定义了一个二进制借口(ABI),从此来保证WindowssocketAPI应

3、用程序能够在任何符合Windowssocket协议的实现上工作。三、主要仪器设备及耗材Windows 7,Eclipse,JDK 1.7。这里用两个主机,一个做服务器端,一个做客户端。第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)服务器端代码:#include#include#pragmacomment(lib,ws2_32.lib)#defineSIZE1024*8voidmain() /创建套接字WORDmyVersionRequest;WSADATAwsaData;myVersionRequest=MAKEWOR

4、D(1,1);interr;err=WSAStartup(myVersionRequest,&wsaData);if(!err)printf(已打开套接字n);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);/绑定端口

5、bind(serSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR);/绑定完成listen(serSocket,5);/其中第二个参数代表能够接收的最多的连接数/开始进行监听SOCKADDR_INclientsocket;intlen=sizeof(SOCKADDR);SOCKETserConn;charsendBuf50;/如果这里不是accept而是conection的话,就会不断的监听。serConn=accept(serSocket,(SOCKADDR*)&clientsocket,&len);sprintf(sendBuf,welcome%stobeji

6、ng,inet_ntoa(clientsocket.sin_addr);/找对对应的IP并且将这行字打印到那里/发送欢迎信息send(serConn,sendBuf,strlen(sendBuf)+1,0);FILE*fp;lable1:printf(客户端已打开n请输入存放文件地址:n);charpath100=0;inti=0;while(pathi!=0)if(pathi=/)pathi=;i+;gets(path);if(fp=fopen(path,wb)=NULL)printf(文件未打开n);gotolable1;elseprintf(文件已打开开始文件传输.n);/发送开始标志s

7、end(serConn,开始传送,strlen(开始传送)+1,0);/得到文件大小chardatalength20;longintlength=0;recv(serConn,datalength,21,0);length=atol(datalength);printf(得到文件大小:%dn,length);/开始传送doublecent=0.0;charreceiveBufSIZE;longintx=0;while(1)x=x+SIZE;if(xlength)cent=(double)x*100.0/(double)length;printf(已接收:%4.2fn,cent);recv(se

8、rConn,receiveBuf,SIZE+1,0);fwrite(receiveBuf,1,SIZE,fp);elserecv(serConn,receiveBuf,length+SIZE-x+1,0);printf(文件接收完毕n);fwrite(receiveBuf,1,length+SIZE-x,fp);fclose(fp);break; closesocket(serConn);/关闭WSACleanup();/释放资源的操作system(pause);客户端代码:#include#include#pragmacomment(lib,ws2_32.lib)#defineSIZE102

9、4*8voidmain()FILE*fp;interr;intlength=0;SOCKETclientSocket;SOCKADDR_INclientsock_in;charreceiveBuf100=0;charip_addr16=127.0.0.1;WORDversionRequired;WSADATAwsaData;versionRequired=MAKEWORD(1,1);err=WSAStartup(versionRequired,&wsaData);/协议库的版本信息if(!err)printf(客户端嵌套字已经打开!n);elseprintf(客户端的嵌套字打开失败!n);re

10、turn;/结束clientSocket=socket(AF_INET,SOCK_STREAM,0);printf(请输入主机IP:n);scanf(%s,ip_addr);/连接服务器clientsock_in.sin_addr.S_un.S_addr=inet_addr(ip_addr);clientsock_in.sin_family=AF_INET;clientsock_in.sin_port=htons(6000);connect(clientSocket,(SOCKADDR*)&clientsock_in,sizeof(SOCKADDR);/开始连接recv(clientSocke

11、t,receiveBuf,101,0);printf(%sn,receiveBuf);charpath100=0;gets(path);inti=0;doprintf(请输入文件地址:n);gets(path);while(pathi!=0)if(pathi=/)pathi=;i+;i=0;if(fp=fopen(path,rb)=NULL)i=1;printf(文件未打开n);while(i);fseek(fp,0L,SEEK_END);length=ftell(fp);printf(待传送文件大小:%dn,length);printf(文件已经打开等待主机消息.n);/得到主机开始传送消息

12、recv(clientSocket,receiveBuf,101,0);printf(%sn,receiveBuf);if(strcmp(receiveBuf,开始传送)=0)/传送文件长度charsendBuf20;ltoa(length,sendBuf,10);send(clientSocket,sendBuf,21,0);fseek(fp,0L,SEEK_SET);/传送文件longinty=0;doublecent;chartransSIZE;while(!feof(fp)fread(trans,1,SIZE,fp);y=y+SIZE;if(ylength)cent=(double)y

13、*100.0/(double)length;printf(已发送:%4.2fn,cent);send(clientSocket,trans,SIZE+1,0);elsesend(clientSocket,trans,length+SIZE-y+1,0);closesocket(clientSocket);WSACleanup();fclose(fp);printf(文件发送完毕n);system(pause);二、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 客户端运行结果服务器端运行结果三、 实验小结、建议及体会通过此次实验过程我充分了解了TCP/IP协议的相关知识以及其中两个重要协议TCPUDP的特点与差异,进一步学习了文件传输等知识,创建套接字监听传输关闭等过程,直到最后写出C/S模式的文件传输程序感觉我们巩固了教材的内容实践的能力也得到了提高不足之处就是自己粗心大意,在写代码时候参数注解等经常注明的不够好,希望以后能养成良好的编程习惯。

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922