get
GET / HTTP/1.1\r\nHost: cooolr.cn\r\n\r\n
body
HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nHello World
server
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define PORT 8000
int make_server() {
// define
int socket_desc, client_sock;
struct sockaddr_in server, client;
int addrlen = sizeof(client);
int read_size;
char request[1024] = {'\0'};
socket_desc = socket(AF_INET, SOCK_STREAM, 0);
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(PORT);
if ( bind(socket_desc, (struct sockaddr *)&server, addrlen) < 0 ) {
return 1;
}
listen(socket_desc, 1024);
while ( (client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&addrlen)) ) {
while ( (read_size = recv(client_sock, request, sizeof(request), 0)) > 0 ) {
strcat(request, "\0");
printf("%s", request);
char *body = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nHello World";
write(client_sock, body, strlen(body));
break;
}
close(client_sock);
}
return 0;
}
int main() {
return make_server();
}