网络编程文件传输实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络编程文件传输实验
报告
文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]
基于TCP
一、
1、
2、sockets 二、
TCP
务.其中套接字取值sock_stream即为TCP的流传输服务
Windows socket包含了人们所熟悉的Berkeley Socket风格的函数库,也包含了一组针对windows的扩展库函数,以使程序员能充分的利用
windows驱动消息机制进行编程。
Windows Sockets的规范本意在于提供给应用开发者一套简单的API,并让个网络应用软件开发商遵守该协议。此外在一个特定的版本windows基础上,Windows socket也定义了一个二进制借口(ABI),从此来保证Windows socket API应用程序能够在任何符合Windows socket协议的实现上工
作。
三、设计概述
1、创建套接字
服务进程和客户进程在实现通信前必须创建各自的套接字,然后才能用相应的套接字进行发送接收操作,服务进程总是先于客户端进程启动,服务器端进程和客户端进程创建套接字。Socket()函数实现代码如下:SOCKET serSocket=socket(AF_INET,SOCK_STREAM,0);....\n");
....\n");
//得到主机开始传送消息
recv(clientSocket,receiveBuf,101,0);
printf("%s\n",receiveBuf);
if(strcmp(receiveBuf,"开始传送")==0)
{
//传送文件长度
char sendBuf[20];
ltoa(length,sendBuf,10);
send(clientSocket,sendBuf,21,0);
fseek(fp,0L,SEEK_SET);
//传送文件
long int y=0;
double cent;
char trans[SIZE];
while(!feof(fp))
{
?
fread(trans,1,SIZE,fp);
y=y+SIZE;
if(y { cent=(double)y*(double)length; printf("已发送: %%\n",cent); send(clientSocket,trans,SIZE+1,0); } else { send(clientSocket,trans,length+SIZE-y+1,0); closesocket(clientSocket); WSACleanup(); } } fclose(fp); } printf("文件发送完毕\n"); system("pause"); } 四、实验结果及分析: 客户端运行结果 服务器端运行结果 五、心得体会:网络编程的实验课虽然只有八次,但是我们充分了解了 各种网络编程和winsock控件的知识,了解了TCP/IP协议的相关知识以及其中两个重要协议TCP UDP的特点与差异,进一步学习了文件传输等知 识,创建套接字监听传输关闭等过程,直到最后写出C/S模式的文件传输程序感觉我们巩固了教材的内容实践的能力也得到了提高不足之处就 是自己粗心大意,在写代码时候参数注解等经常注明的不够好,希望以后能养成良好的编程习惯