预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共49页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《网络编程》课程实验指导书 实验七HTTP协议客户端编程实现 1实验目的与要求 掌握浏览web网页的原理,深入理解HTTP原理以及HTML语言的功能,运用流式套接字下载web网页文件,分别用文本方式和浏览器方式打开下载的网页文件。同时运用ChtmlView类编写浏览器软件。运用ChtmlView类开发浏览器程序,比较两者的异同. 2、实验内容 第一部分:编写并理解程序,利用流式套接字与web服务器建立TCP连接,然后向服务器发送Get命令,接收服务器的内容,把接收到的信息保存在一个文件中,然后打开该文件,观察文件的内容.第二部分:运用ChtmlView类开发浏览器程序 3实验原理 模拟explorer部分功能,与web服务器的80端口建立TCP连接,接下来向web服务器发送一Get命令,服务器会把应答信息和web网页的内容传输过来. 4、实验步骤 编写并调试程序,选择一个web服务器,寻找共IP地址,如: 邵阳学院220.170.193.10 搜狐119.97.155.2 新浪59.175.132.113 在程序中填入该web服务器的Ip地址,运行程序,打开接收的文本文件,观察文件的内容。 并在实验报告中填写下述内容。 接收文件的第一部分的应答信息内容是什么? 接收文件的第二部分的内容是什么? 用ChtmlView类开发浏览器程序有什么特点? 主要仪器设备: 安装有VC++6.0的PC机。 要求撰写实验报告,填写实验结果。 附录:第一部分的程序如下 #pragmacomment(lib,"ws2_32.lib") #include<stdio.h> #include<string.h> #include<winsock.h> voidmain() { WSADATAwsaData; SOCKETs; FILE*fp1;//文件指针 SOCKADDR_INsaddr; intresult;//整形变量,用于记录接收数据的字节数 intport=80;//http服务器的默认端口 WSAStartup(MAKEWORD(2,2),&wsaData); s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//创建TCP套接字 saddr.sin_family=AF_INET; saddr.sin_port=htons(port); saddr.sin_addr.S_un.S_addr=inet_addr("220.170.193.10");//yahoo.com.cn的IP地址 connect(s,(SOCKADDR*)&saddr,sizeof(saddr));//请求与web服务器建立TCP连接 charsendbuff[400],strB[1025];//定义发送缓冲区和接收缓冲区 strcpy(sendbuff,"GET/index.htmlHTTP/1.1\r\nHost:www.hnsyu.net\r\n\r\n");//字符串拷贝 send(s,sendbuff,strlen(sendbuff),0);//传送http请求报文 fp1=fopen("E:\pp1.html","w");//打开E:\pp.html,把接收报文保存在该文件中 result=1;//以下每次最多只接收1024字节,其中result为接收的字节数 while(result>0) { strset(strB,''); result=recv(s,strB,1024,0);//接收http应答报文 fwrite(strB,1,result,fp1);//把strB的数据写入fp所指的文件,以1个字节为单位,写入result个字节 strB[result]='\0';//为显示在屏幕上,加字符串结束标记 printf("%s",strB);//以字符串的形式显示的屏幕上 }//实际接收的字节数大于0,继续接收 fclose(fp1);//关闭文件 closesocket(s);//关闭套接字 WSACleanup();//关闭动态链接库 } 第二部分的操作如下 1建立工程SelfBrowser 基于”单文档”,工具栏样式为:”类似IE”,最后一步的CselfBrowserView基于ChtmlView类 2打开资源视图(ResourceView),点击对话框资源(Dialog),再点击IDR_MAINFRAME选项卡,如图所示: 剪切“TODO:对话框布局”,在该位置添加一编辑框和命令按钮,把命令按钮的标题改为”浏览”,把编辑框的ID号改为”ID_EDIT_ADDRESS”,如图所示 3点击“建立类向导”出会现如下界面, 选定”Selecta