Settings | Sign in | Sign up

The author has 13 posts.

【程序段】最简单的HTTP请求响应代码

Floor 11 巨大八爪鱼 3/19/17 17:32
【显示网页名称的程序】
err_t http_recv(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)
{
    char len[10]; // 存放HTML内容的长度
    char str[200]; // 存放HTML内容
   
    char name[100];
    char *pstr;
    uint8_t i = 0;
    if (p != NULL)
    {
        // 提取页面名称
        pstr = (char *)p->payload;
        while (*pstr++ != ' ');
        while (*pstr != ' ')
            name[i++] = *pstr++;
        name[i] = '\0'; // 不要忘了结束name字符串
        tcp_recved(tpcb, p->tot_len);
       
        // 生成HTML内容
        sprintf(str, "<meta charset=\"gb2312\"><title>获取网页名称</title><div style=\"font-family:Arial\"><b>请求的网页文件名称是: </b>%s</div>", name);
       
        sprintf(len, "%d", strlen(str)); // HTML内容的长度
        tcp_write(tpcb, STR_AND_SIZE("HTTP/1.1 200 OK\r\nContent-Length: "), TCP_WRITE_FLAG_MORE);
        tcp_write(tpcb, STR_AND_SIZE(len), TCP_WRITE_FLAG_COPY | TCP_WRITE_FLAG_MORE);
        tcp_write(tpcb, STR_AND_SIZE("\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/html\r\n\r\n"), TCP_WRITE_FLAG_MORE);
        tcp_write(tpcb, STR_AND_SIZE(str), TCP_WRITE_FLAG_COPY); // 发送HTML内容
        pbuf_free(p);
    }
    return ERR_OK;
}
Floor 12 巨大八爪鱼 3/19/17 17:33
Floor 14 巨大八爪鱼 4/7/17 21:58

Reply @alsonjin on Floor 13:

大神 特来注册 感觉你对 lwip  很了解
请问你是?

Content converter:

Reply the post
Content:
User: You are currently anonymous.
Captcha:
Unclear? Try another one.