MTK socket 小结 5

本文总结了MTK平台上的socket通信,重点介绍了HTTP请求的流程,包括URL分析、域名解析、连接建立、请求头构造、数据发送、接收响应及关闭连接等步骤。通过示例代码对每个环节进行了简单分析。
摘要由CSDN通过智能技术生成

很久没有跟新了,自己的承诺都没有兑现,对不起各位关注支持我的,更对不起自己。对于有些问题,没有回答的话,麻烦你再提一下,我找不清楚哪些回答了,sorry。

上次说到Demo的socket 链接,先看HTTP请求。

当然要理解这个,得知道一个HTTP请求是什么样子的和HTTP协议的交互过程。要详细了解 可以看 RFC 标准文档。简单来说,HTTP 协议是请求应答模式,客户端发一个请求,服务器短发一个答复。客户端说:要xxx网页,服务器就把xxx网页返回给你。交互就需要一个规范,这个就是请求和应答的头,比如 请求的第一行: GET /index.html HTTP/1.1 就表示要获得 index.html。(如果要在命令行下模拟,可以输入 telnet www.baidu.com 80 , 链接成功后,输入 GET / HTTP/1.1 回车回车,就能获得baidu首页了,这个过程就是模拟了想服务器发送了一个最简单的HTTP 请求)

简单过程分析如下:

1 分析URL 把域名,请求地址,和 端口 拆分开

2 进行域名解析,也就是把网址解析成ip地址,这个是异步的过程

3 等解析完成之后,对这个ip地址进行链接

4 链接成功,组装HTTP 请求 头,发送数据

5 如果发送成功,那么一会就会收到通知,有数据可读

6 收到可读消息后,读取内容。

7 交互完成,关闭socket

具体代码分析:

int en_soc_demo_http_send_request(void)
{
    // 是否初始化
    if (soc_demo_transaction)
    {
        // 当前状态, HTTP_DNS_QUERY 表示第一步需要域名解析
        if (soc_demo_transaction->state == HTTP_DNS_QUERY &&
            (soc_demo_app_http_url_struct*) soc_demo_transaction->url_parsed_info == NULL)
        {
            // 解析URL,主要是把域名,请求地址,端口区分出来
            // 比如 http://blog.csdn.net/yanwuxufeng 域名是 http://blog.csdn.net
            // 请求地址是yanwuxufeng ,端口默认是 80
            soc_demo_transaction->url_parsed_info =
                (soc_demo_app_http_url_struct*) en_soc_demo_http_get_parsed_url(
                                                    soc_demo_transaction->url,
                                                    soc_demo_transaction->url_len);
            if (soc_demo_transaction->url_parsed_info)
            {
                // 根据域名,获取域名的ip地址
                // 这是个异步的过程,回调函数得到结果
                (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值