43 lines
1.0 KiB
Plaintext
43 lines
1.0 KiB
Plaintext
|
|
|
||
|
|
int main() {
|
||
|
|
int server_fd;
|
||
|
|
int client_fd;
|
||
|
|
char buffer[1024];
|
||
|
|
char *response;
|
||
|
|
int bytes;
|
||
|
|
int response_len;
|
||
|
|
int count;
|
||
|
|
|
||
|
|
printf("Creating socket\n");
|
||
|
|
server_fd = socket(AF_INET(), SOCK_STREAM(), 0);
|
||
|
|
|
||
|
|
printf("Binding\n");
|
||
|
|
bind(server_fd, 8080);
|
||
|
|
|
||
|
|
printf("Listening\n");
|
||
|
|
listen(server_fd, 10);
|
||
|
|
|
||
|
|
printf("Server listening on port 8080\n");
|
||
|
|
|
||
|
|
count = 0;
|
||
|
|
while (count < 100) {
|
||
|
|
printf("Waiting for connection\n");
|
||
|
|
client_fd = accept(server_fd, 0, 0);
|
||
|
|
printf("Client connected\n");
|
||
|
|
|
||
|
|
bytes = recv(client_fd, buffer, 1024, 0);
|
||
|
|
printf("Received %d bytes\n", bytes);
|
||
|
|
|
||
|
|
response = "HTTP/1.1 200 OK\nContent-Type: text/html\n\n<html><body><h1>Hello from Mini C HTTP Server!</h1><p>This server runs on a custom C interpreter.</p></body></html>";
|
||
|
|
response_len = strlen(response);
|
||
|
|
send(client_fd, response, response_len, 0);
|
||
|
|
|
||
|
|
close(client_fd);
|
||
|
|
printf("Connection closed\n");
|
||
|
|
count = count + 1;
|
||
|
|
}
|
||
|
|
|
||
|
|
close(server_fd);
|
||
|
|
return 0;
|
||
|
|
}
|