Untitled
unknown
plain_text
9 months ago
1.8 kB
5
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