C语言-写一个简单的Web服务器(四)

经过以上几次的构建,我们基本上已经构建出来了一个简易的Web服务器,接下来将使用查询从文本中查询我们的问题。

查询结果

在这里我设置了一个page全局参数用来记录是哪个页面,避免和登录页面进行冲突重复查询(大家可以自行优化)。

将html中的头拼接到之前写的html页面上去,由于要使用打字机效果使用了typed.js插件,从网络上连接效率太低,我采用启动一个tomcat将插件放入本地使用。

tips:尝试直接放入本地,但是浏览器拒绝这样使用。

c 复制代码
if (strcmp("9", page) != 0) {
    char ans[1024*5];
    memset(ans,0, sizeof(ans));
    read_answer(ans, question);
    strcat(body, "<div class='box'></div>");
    strcat(body, "<script src='http://localhost:8090/cc/typed.min.js'></script>");
    strcat(body, "<script>let typed = new Typed('.box', {strings: ['");
    strcat(body, ans);
    strcat(body, "'],typeSpeed: 120,});</script>");
}
send(client_socket, headers, strlen(headers), 0);
send(client_socket, html_header, strlen(html_header), 0);
send(client_socket, body, strlen(body), 0);
printf("[服务器] 响应完成......\n");

close(client_socket);
printf("[服务器] ---------------断开与客户端(浏览器的连接)------------------\n\n");
c 复制代码
void read_answer(char *line, char *key) {


    FILE *fp = NULL;
    char ans_line[100];
    fp = fopen("D:/cprojects/ai_x/data.txt", "r");
    int step = 0;
    int c = 0;
    while ((c = fgetc(fp)) != EOF) {
        if (c == '\r' || c == '\n') {
            ans_line[step++] = '!';
            continue;
        }
        ans_line[step + 1] = '\0';
        ans_line[step++] = (char) c;
    }

    fclose(fp);

    char *x = strtok(ans_line, "!");

    int index =0;
    while (x != NULL) {
        printf("第%d行--->%s\n", index++,x);
        if(strstr(x,key)){
            strcpy(line,x);
            break;
        }
        x = strtok(NULL, "!");
    }
    printf("查询到的结果===>%s\n", line);

}

测试查询

相关推荐
浩浩测试一下18 分钟前
Linux 底层知识点 1
linux·运维·服务器
Eloudy18 分钟前
全文 - IMEX 第01节 -IMEX overview
运维·服务器·网络
Escalating_xu1 小时前
【Linux 网络编程】TCP 跨平台实战:用 Windows 客户端访问 Linux 服务器
linux·服务器·网络
发量惊人的中年网工1 小时前
分公司访问总部ERP慢怎么办?SD-WAN组网的排查与验收要点
服务器·开发语言·php
翼龙云_cloud1 小时前
亚马逊云服务器服务代理商:Bedrock 实践经验 Serverless 架构下的 AI 自动化落地
服务器·架构·serverless·云计算·aws
ShineWinsu2 小时前
对于JavaScript:操作元素的解析
开发语言·前端·javascript·面试·web·dom·元素
忆挽篱笙歌2 小时前
环境变量,本地变量
linux·运维·服务器
福兮说2 小时前
JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值
java·前端·json
程序员老赵4 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
Swot4 小时前
Asciidoctor 公式数字下标错位问题:原因分析与解决方案
前端