【发布时间】:2014-03-06 22:28:37
【问题描述】:
由于某种原因,我的标头没有正确生成。
我正在发送一个连接的套接字,以及一个文件名和响应代码 200。 但是,该方法不返回任何内容。
为什么?
void generate_header(int sock, char* filename, int response_code) {
int i = 0;
char buffer[BUFLEN];
if (response_code == 200) {
strncpy(buffer, "HTTP/1.1 200 OK\n", sizeof(buffer));
} else if (response_code == 404) {
} else if (response_code == 400) {
} else {
}
strncpy(buffer, "Content-Type: text/html\n", sizeof(buffer) - strlen(buffer) - 1);
strncpy(buffer, "Connection: close\n", sizeof(buffer) - strlen(buffer) - 1);
strncpy(buffer, "\n", sizeof(buffer) - strlen(buffer) - 1);
write(sock, buffer, strlen(buffer));
}
【问题讨论】:
-
看起来你在第一个
strncpy之后需要strncat -
就是这样! :) 又粗心了。
-
顺便说一句,您的
for循环与printf("%s", buffer)完全相同 -
@MattMcNabb:类似——但要慢一些。
-
@JonathanLeffler 您认为哪个较慢,并且您测量过...? ;-)
标签: c string cstring c-strings