C语言套接字访问网页

本文介绍了如何使用C语言进行socket编程来获取网页内容,重点讲解了HTTP协议的基本原理和GET请求的格式。通过telnet工具演示了如何手动发送请求并接收服务器响应,帮助理解网络通信过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用c语言使用socket编程来实现获取网页的代码,在这之前 我们需要搞清楚以下两个问题:

  • 第一:如何与服务器通信?
  • 第二:通信后该做些什么?

第一个问题是上一章的东西,也就是 网站服务器是 服务端,我们只需要写一个客户单和他进行通信即可。
第二个问题就是本节课重点了,如何通信,按照什么规则来通信? 接下来就为大家讲简单的说下 http协议(更详细的,可以点开左边的链接看看)。

http协议其实就是 浏览器和服务器之间传输数据的时候 所约定的一个 数据格式。

我们只要了解了这种格式,我们就可以模拟浏览器的行为,给服务端发送特定格式的内容,他就会返回给我们特定格式的内容。
那么,这个格式是怎么样的呢? 下面是一个最简单的请求格式

GET  /index.php HTTP/1.0
host:www.csdn.com

我们发送上面的数据过去,服务器就会返回 index.php 这个页面给我们。

接下来我们详细说下 上面都是什么意思:
GET 这个 是表示 以什么方式请求,HTTP中还有很多其他的请求方式,常用的就 GET POST

GET 后面紧跟一个空格 然后 给出,要获取的资源的名称, /index.php 就表示获取网站服务器根目录下 index.php 执行后所产生的内容,我们也可以改成 GET / HTTP/1.0 这就表示获取默认首页的内容 。 GET /1.html HTTP/1.0 就是获取 服务器根目录下 1.html的内容,很容易理解吧。
接下来隔一个空格 跟上 HTTP/1.0 表示 http协议的版本,这个是固定的 。
第二行 host:www.csdn.com 用来指定 访问哪个主机。 大家都知道,一个服务器可以放很多个网站,每个网站有不同的域名,所以我们需要用这个host来指定 我们要访问的是哪个网站,这样 才能正确得访问到我们想访问的网站。

telnet工具

在win7下 telnet服务端和客户端都是默认没有的,所以我们需要自己来开启一下。

  1. 首先 打开 控制面板,点开 卸载程序;
  2. 点开 打开或关闭windows功能;
  3. 把telnet 客户端 勾上,点击确定。
  4. 最后打开命令行 输入 telnet回车 出现如下界面,表示成功了。

telnet 他是一个基于tcp/ip 协议的程序,为我们用户提供一个 与其他电脑通信的工具,我们可以使用他来和其他电脑进行连接通信。
开始->运行->输入telnet回车

我们这时就可以输入命令,来连接远程主机,比如我们这次是要连接CSDN 的服务器,
那么我们就输入

open www.csdn.com 80 

然后回车。

open 是打开的意思 后面跟上 要打开那个主机 然后 后面跟上端口, web服务器默认使用的是80端口,所以 要加上80端口(不加端口 telnet默认是23端口)。
这就代表 我们已经和远程主机连接上了,就相当于我们上一章 客户端执行到 connect 函数 之后 就是要调用 send函数发送数据了,在这里 我们只需要按键盘输入到黑色窗口中 就会发送到服务端。

我们依次输入以下内容,(注意,不能按退格,输入错误了,就重新打开telnet,重新操作。)

GET  /index.php HTTP/1.0
host: www.csdn.com

然后就会收到服务端返回的内容。
telnet是个非常好玩的工具,不仅可以用来测试http协议,还有发邮件的 smtp协议 收邮件的pop3协议,都可以的,理论上所有基于tcp的协议都可以模拟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code Writers

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值