add client handler file and code

This commit is contained in:
Nayan
2025-05-05 20:49:27 -04:00
parent 8efb833cca
commit 8473615df5
4 changed files with 39 additions and 5 deletions

View File

@@ -1,8 +1,11 @@
all: webserver.o all: webserver.o client_handler.o
gcc -o webserver.out webserver.o gcc -o webserver.out webserver.o client_handler.o -lpthread
webserver: webserver.c webserver: webserver.c
gcc -c webserver webserver.c gcc -c webserver webserver.c
client_handler: client_handler.c
gcc -c client_handler client_handler.c
clean: clean:
rm -f *.o *.out rm -f *.o *.out

16
client_handler.c Normal file
View File

@@ -0,0 +1,16 @@
#include "client_handler.h"
#define BUFFER_SIZE 1024
void* client_handler(void* args) {
int client = *((int*)args);
char* buffer = (char*)malloc(BUFFER_SIZE);
ssize_t bytes_read = recv(client, buffer, BUFFER_SIZE, 0);
if (bytes_read > 0) {
buffer[bytes_read] = '\0';
printf("Received: %s\n", buffer);
}
free(buffer);
return NULL;
}

11
client_handler.h Normal file
View File

@@ -0,0 +1,11 @@
#ifndef CLIENT_HANDLER_H
#define CLIENT_HANDLER_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
void* client_handler(void* args);
#endif

View File

@@ -1,9 +1,11 @@
#include <netinet/in.h> #include <netinet/in.h>
#include <pthread.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <sys/socket.h> #include <sys/socket.h>
// #include <pthread.h>
#include "client_handler.h"
struct sockaddr_in server_addr; struct sockaddr_in server_addr;
@@ -43,8 +45,10 @@ int main(int argc, char **argv) {
if (client < 0) { if (client < 0) {
perror("Failed to accept client"); perror("Failed to accept client");
continue; continue;
} else {
printf("Client connected\n");
} }
pthread_t thread;
pthread_create(&thread, NULL, client_handler, (void *)client);
pthread_detach(thread);
} }
} }