网站大量收购闲置独家精品文档,联系QQ:2885784924

利用流式套接字实现文件的传输范例.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络编程技术实验报告 实验名称 队 别 姓 名 学 号 实验日期 2015.12.11 实验报告要求: 1.实验目的 2.实验要求 3.实验环境 4.实验作业 5.问题及解决 6.思考问题 7.实验体会 【实验目的】2.加深对流式套接字的掌握 3.掌握一些解决实际问的能力【实验】【实验】 c 【实验】 int tcp_client_fun_echo(FILE *fp,SOCKET s) { int iResult; char sendline[MAXLINE],recvline[MAXLINE]; char file[20]; char flong[4]; int i=0;//文件名发送控制 //初始化缓冲区 FILE *f;//写文件指针 char *buff;//读入文件内容 uint32_t nFileLen;//文件长度 printf(请输入文件名:\n); scanf(%s,file); f=fopen(file,rb); if(f==NULL) printf(打开文件失败或文件不存在!\n); fseek(f,0,SEEK_END); nFileLen=ftell(f); rewind(f);//回到到文件头部 buff=(char *)malloc(nFileLen); iResult=fread(buff,1,nFileLen,f); if(iResult!=nFileLen) { printf(读入文件错误!\n); return 0; } memset(sendline,0,MAXLINE); memset(recvline,0,MAXLINE); while(i!=nFileLen) { recvline[i]=*buff; i++; buff++; } //文件名传输结束 sprintf(sendline,%s#%d%s,file,nFileLen,recvline); iResult=send(s,sendline,sizeof(sendline),0); if(iResult==SOCKET_ERROR) { printf(send函数调用错误,错误号:%d,WSAGetLastError()); return -1; } fclose(fp); printf(文件发送完成!\n); return iResult; } 服务器: int tcp_server_fun_echo(SOCKET s) { FILE *fp; int i=0; char flong[4]; int iResult = 0; uint32_t nFileLen=1; char recvline[MAXLINE]; char file[10]; memset(file,0,sizeof(file)); memset(recvline,0,sizeof(recvline)); for(;;) { iResult=recv(s,file[i],1,0); if(iResult==SOCKET_ERROR) { printf(recv函数调用错误,错误号:%d,WSAGetLastError()); return -1; } if(file[i]==#) break; else i++; } file[i]=\0; fp=fopen(file,w+); if(fp==NULL) printf(文件打开失败!); //接收文件长度 iResult=recv(s,flong,4,0); if(iResult==SOCKET_ERROR) { printf(recv函数调用错误,错误号:%d,WSAGetLastError()); return -1; } sscanf(flong,%d,nFileLen); iResult=recv(s,recvline,nFileLen,0); if(iResult==SOCKET_ERROR) { printf(recv函数调用错误,错误号:%d,WSAGetLastError()); return -1; } fputs(recvline,fp); fclose(fp); printf(文件接收成功!\n); return iResult; } 头文件(上次的实验报告中已经写过): #i

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档