Untitled
unknown
plain_text
11 days ago
1.8 kB
4
Indexable
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #define PORT 8080 #define BUFFER_SIZE 1024 void handle_client(int client_sock) { char buffer[BUFFER_SIZE]; int bytes_received = recv(client_sock, buffer, BUFFER_SIZE - 1, 0); if (bytes_received < 0) { perror("recv"); close(client_sock); return; } buffer[bytes_received] = '\0'; printf("Received request:\n%s\n", buffer); const char *response = "HTTP/1.1 200 OK\r\n" "Content-Type: text/html\r\n" "Connection: close\r\n\r\n" "<html><body><h1>Hello, World!</h1></body></html>"; send(client_sock, response, strlen(response), 0); close(client_sock); } int main() { int server_sock, client_sock; struct sockaddr_in server_addr, client_addr; socklen_t client_len = sizeof(client_addr); server_sock = socket(AF_INET, SOCK_STREAM, 0); if (server_sock == -1) { perror("socket"); exit(EXIT_FAILURE); } server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = INADDR_ANY; server_addr.sin_port = htons(PORT); if (bind(server_sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) { perror("bind"); close(server_sock); exit(EXIT_FAILURE); } if (listen(server_sock, 10) < 0) { perror("listen"); close(server_sock); exit(EXIT_FAILURE); } printf("Server listening on port %d...\n", PORT); while (1) { client_sock = accept(server_sock, (struct sockaddr*)&client_addr, &client_len); if (client_sock < 0) { perror("accept"); continue; } handle_client(client_sock); } close(server_sock); return 0; }
Editor is loading...
Leave a Comment