summaryrefslogtreecommitdiff
path: root/app/v3_c/src/myhttpd.c
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2011-01-22 17:14:23 +0000
committerLudovic Pouzenc <ludovic@pouzenc.fr>2011-01-22 17:14:23 +0000
commit97916409eb9cdaf9b4f6ed12a5693c5e6f3ee0d8 (patch)
tree71a42ed7468ee7724d2a6a9af3b372038da92957 /app/v3_c/src/myhttpd.c
parentcebbe1cd7fe8be10d51a1d8fc4007407b1ba77c7 (diff)
download2011-usi-97916409eb9cdaf9b4f6ed12a5693c5e6f3ee0d8.tar.gz
2011-usi-97916409eb9cdaf9b4f6ed12a5693c5e6f3ee0d8.tar.bz2
2011-usi-97916409eb9cdaf9b4f6ed12a5693c5e6f3ee0d8.zip
Version du C qui compile et qui accepte des clients
git-svn-id: file:///var/svn/2011-usi/trunk@11 db941bf7-0cb3-4dda-9634-87faf64f93a7
Diffstat (limited to 'app/v3_c/src/myhttpd.c')
-rw-r--r--app/v3_c/src/myhttpd.c37
1 files changed, 33 insertions, 4 deletions
diff --git a/app/v3_c/src/myhttpd.c b/app/v3_c/src/myhttpd.c
index d662dd3..1e0c3e8 100644
--- a/app/v3_c/src/myhttpd.c
+++ b/app/v3_c/src/myhttpd.c
@@ -5,17 +5,46 @@
#include <stdio.h>
#include <stdlib.h>
+#include <strings.h>
#include <errno.h>
#include "myhttpd.h"
+#include "utils.h"
int main() {
- //int res;
-
- int sockServ;
+ int res;
+ int sockServ, sockCli;
+ struct sockaddr_in servAddr, cliAddr;
+ size_t cliAddrLen;
+ int ending;
+ // Création socket
sockServ = socket(AF_INET, SOCK_STREAM, 0);
- if (sockServ -1) { perror("socket"); exit(1); }
+ if (sockServ < 0) { perror("socket"); exit(1); }
+
+ // Accrochage du socket (adresse et port locaux)
+ bzero((char *) &servAddr, sizeof(servAddr));
+ servAddr.sin_family = AF_INET;
+ servAddr.sin_addr.s_addr = INADDR_ANY;
+ servAddr.sin_port = htons(LISTEN_PORT);
+ res=bind(sockServ, (struct sockaddr *) &servAddr, sizeof(servAddr));
+ if (res < 0) { perror("bind"); exit(2); }
+
+ // On la:nce l'écoute
+ listen(sockServ,LISTEN_BACKLOG);
+ if (res < 0) { perror("listen"); exit(3); }
+
+ // Boucle d'acceptation des clients
+ cliAddrLen = sizeof(cliAddr);
+ ending=0;
+ while ( ! ending ) {
+ sockCli=accept(sockServ, (struct sockaddr *) &cliAddr, &cliAddrLen);
+ #ifdef DEBUG
+ logs("Client accepté");
+ #endif
+
+ }
return 0;
}
+