- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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)