Created
September 16, 2017 04:30
-
-
Save ikariiin/5a1f0037ef72a39de7ce5f4970e5f12d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <sys/socket.h> | |
#include <netinet/in.h> | |
#include <arpa/inet.h> | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <unistd.h> | |
#include <errno.h> | |
#include <string.h> | |
#include <sys/types.h> | |
#ifndef true | |
#define true 1 | |
#endif | |
int socket_create(); | |
void infinite_loop(); | |
void main() { | |
struct sockaddr_in listeningAddr; | |
int socketFD = socket_create(); | |
memset(&listeningAddr, 0, sizeof(listeningAddr)); | |
listeningAddr.sin_family = AF_INET; | |
listeningAddr.sin_addr.s_addr = htonl(INADDR_ANY); | |
listeningAddr.sin_port = htons(8080); | |
bind(socketFD, (struct sockaddr*) &listeningAddr, sizeof(listeningAddr)); | |
if(listen(socketFD, 5) == -1) { | |
printf("Woah there! I couldn't startup the server!"); | |
} | |
infinite_loop(); | |
} | |
void infinite_loop(int socketFD) { | |
char buffer[1024]; | |
memset(buffer, 0, sizeof(buffer)); | |
printf("Starting infinite loop, don't worry, everything would be okay!\n"); | |
do { | |
int connectionFD = accept(socketFD, (struct sockaddr*) NULL, NULL); | |
/*Accept is a blocking call! The following code wont execute until, accept() returns.*/ | |
strcpy(buffer, "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nHello!"); | |
write(connectionFD, buffer, sizeof(buffer)); | |
char request[2048]; | |
read(connectionFD, &request, sizeof(request)); | |
printf("Request received!\n%s", request); | |
close(connectionFD); | |
} while (true); | |
} | |
int socket_create() { | |
return socket(AF_INET, SOCK_STREAM, 0); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
After
char request[2048]
there shall be amemset(request, 0, sizeof(request));