Я пытаюсь написать простой веб-сервер HTTP, используя c, но продолжаю сталкиваться с проблемами при попытке его создать. Кажется, все в создании серверного сокета работает нормально; по сути, я просто не понимаю, как отправить материал в браузер. Вот отрывок из моего кода, в котором сервер зацикливается, чтобы создать сокетные соединения с клиентом, а затем отправлять данные на веб-страницу:
for (;;) /* Run forever */
{
/* Set the size of the in-out parameter */
clntLen = sizeof(clntAddr);
/* Wait for a client to connect */
if ((clntSock = accept(servSock, (struct sockaddr *) &clntAddr,
&clntLen)) < 0)
DieWithError("accept() failed");
/* clntSock is connected to a client! */
printf("Handling client %s\n", inet_ntoa(clntAddr.sin_addr));
FILE *clientInput = fdopen(clntSock, "r");
char input[1000];
char html[BUFSIZE];
fgets(input, 1000, clientInput);
char *token_separators = "\t \r \n";
char *method = strtok(input, token_separators);
char *requestURI = strtok(NULL, token_separators);
char *httpVersion = strtok(NULL, token_separators);
...
char requestMessage[] = "HTTP/1.0 200 OK\r\n\r\n";
send(clntSock, requestMessage, strlen(requestMessage) + 1, 0);
...
}
Я почти уверен, что мой код работает для создания сокетов и соединений, просто когда я пытаюсь отправить этот заголовок ответа, моя веб-страница просто пытается загрузить HTML. Когда я не отправляю заголовок ответа и не пытаюсь отправить обычный html, моя страница работает.
Я думаю, что я не понимаю, почему мой заголовок ответа не будет работать.