- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《网络编程》课程实验指导书
实验七 HTTP协议客户端编程实现
1 实验目的与要求
掌握浏览web网页的原理,深入理解HTTP原理以及HTML语言的功能,运用流式套接字下载web网页文件,分别用文本方式和浏览器方式打开下载的网页文件。同时运用ChtmlView类编写浏览器软件。运用ChtmlView?类开发浏览器程序,比较两者的异同.
2、实验内容
第一部分:编写并理解程序,利用流式套接字与web服务器建立TCP连接,然后向服务器发送Get命令,接收服务器的内容,把接收到的信息保存在一个文件中,然后打开该文件,观察文件的内容.第二部分: 运用ChtmlView?类开发浏览器程序
3 实验原理
模拟explorer部分功能,与web?服务器的80端口建立TCP连接,接下来向web服务器发送一Get命令,服务器会把应答信息和web网页的内容传输过来.
4、实验步骤
编写并调试程序,选择一个web服务器,寻找共IP地址,如:
邵阳学院 0
搜狐
新浪 13
在程序中填入该web服务器的Ip地址,运行程序,打开接收的文本文件,观察文件的内容。
并在实验报告中填写下述内容。
接收文件的第一部分的应答信息内容是什么?
接收文件的第二部分的内容是什么?
用ChtmlView类开发浏览器程序有什么特点?
主要仪器设备:
安装有VC++6.0的PC机。
要求撰写实验报告,填写实验结果。
附录:第一部分的程序如下
#pragma comment(lib,ws2_32.lib)
#include stdio.h
#include string.h
#include winsock.h
void main()
{
WSADATA wsaData;
SOCKET s;
FILE *fp1;//文件指针
SOCKADDR_IN saddr;
int result;//整形变量,用于记录接收数据的字节数
int port=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(0);//的IP地址
connect(s,(SOCKADDR*) saddr, sizeof(saddr));//请求与web?服务器建立TCP连接
char sendbuff[400],strB[1025];//定义发送缓冲区和接收缓冲区
strcpy(sendbuff,GET /index.html HTTP/1.1\r\nHost:\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(result0)
{
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 点击“建立类向导”出会现如下界面,
选定”Select an existing class”后,点击”OK”,出现下面的界面
选定CmainFrame类后,点击”select”
再
文档评论(0)