Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用libMongoose/Embedded Mongoose发送HTML和图像?_Html_C++_C_Mongoose Web Server - Fatal编程技术网

如何使用libMongoose/Embedded Mongoose发送HTML和图像?

如何使用libMongoose/Embedded Mongoose发送HTML和图像?,html,c++,c,mongoose-web-server,Html,C++,C,Mongoose Web Server,所以Mongoose.c库非常简单。我已经能够使用他们的事件系统、URL识别、多表单示例和他们的连接系统来构建一个简单的登录系统。我使用了C++ + MIW,MangoSo.C&H和我的浏览器。现在我想实现图像 但有一个基本问题我无法回避。我可以传输html文档或图像。只要其中一个单独存在,jpg就会像html文档一样快乐地显示出来。对于html,我的代码相对简单: --pretend std::string HTMLAsString holds all html for the documen

所以Mongoose.c库非常简单。我已经能够使用他们的事件系统、URL识别、多表单示例和他们的连接系统来构建一个简单的登录系统。我使用了C++ + MIW,MangoSo.C&H和我的浏览器。现在我想实现图像

但有一个基本问题我无法回避。我可以传输html文档或图像。只要其中一个单独存在,jpg就会像html文档一样快乐地显示出来。对于html,我的代码相对简单:

--pretend std::string HTMLAsString holds all html for the document.
 mg_send_data(conn,HTMLAsString,strlen(HTMLAsString));
当我想要发送图像时,它非常类似:

while ((fread(buf, 1, sizeof(buf), fp)) > 0) {
        mg_send_data(conn,buf,n);
}
mg_send_data(conn,"\r\n",2);
这两项工作我都删去了一些不相关的部分,比如字符串是如何组成的,或者缓冲区是如何填充的,足以说明这些方面是有效的。我可以用“缺少图像空间”的HTML格式,也可以显示图像,但不显示HTML


如何发送图像和HTML?

安徒生先生应该为此获得荣誉,但我无法将评论标记为答案,我想结束这个问题

他死定了。首先,客户端浏览器请求页面。服务器发送它。当客户端浏览器收到HTML文档时,它会向服务器发送HTML中指定的所有图像/文件的请求

我使用conn->uri检查来自客户机的所有地址请求。这使我能够简单地运行字符串比较,以确定从哪个页面接收数据。然而,除了那些我有页面的字符串之外,我没有检查任何其他字符串

只要我说一句简单的话:


我不确定我是否理解您的意图,但您是否试图在浏览器中的html页面中显示图像?如果是,则表示从web浏览器向服务器发出两个请求。首先是下载html文件的请求,然后是对图像的不同请求。
char buf[1024];
int n;
FILE *fp;
fp = fopen(cstrpath, "rb");
if(fp==NULL){printf("ERROR, NO %s found.",cstrpath);}
while ((n = fread(buf, 1, sizeof(buf), fp)) > 0) {
    mg_send_data(conn,buf,n);
}
fclose(fp);
mg_send_data(conn,"\r\n",2);