【发布时间】:2013-02-07 16:48:56
【问题描述】:
刚才我通过连接写HTML内容没有问题。
sprintf(toreturn, "%s\r\n%s\r\n%s\r\n\r\n%s", "HTTP/1.1 200 OK", "Content-Type: text/html", "Connection: close",htmlstring);
write(*inputfd, toreturn, strlen(toreturn))
效果很好。但这就是我试图传递图像以响应图像请求的原因。在这种情况下,它适用于 .ico 文件,但我的问题代表任何二进制文件。
FILE *writefile = (FILE *)calloc(1,sizeof(FILE));
char *charptr = inputaddress;
charptr++;
writefile=fopen(charptr,"r");
sprintf(toreturn, "%s\r\n%s\r\n%s\r\n\r\n", "HTTP/1.1 200 OK", "Content-Type: image/vnd.microsoft.icon", "Connection: close");
write(*inputfd, toreturn, strlen(toreturn))
write(*inputfd, *writefile, strlen(toreturn)
close(*inputfd);
fclose (writefile);
这不起作用。我如何在 C 中通过 HTTP write() 一个图像(或任何二进制文件)文件?
【问题讨论】:
-
你不需要这个
FILE *writefile = (FILE *)calloc(1,sizeof(FILE));-FILE *writefile就足够了。 -
calloc不幸的是,他的问题最少...... -
是的,我建议他看看sendfile,但他的问题远不止这些。
标签: c http networking network-programming