diff --git a/question10/server b/question10/server
new file mode 100755
index 0000000000000000000000000000000000000000..a4606225d89429d5fddc93868eb852934282b379
Binary files /dev/null and b/question10/server differ
diff --git a/question10/server.c b/question10/server.c
new file mode 100644
index 0000000000000000000000000000000000000000..2046b6e32f39e65db4dfbe2a37dc479c4fcf2a11
--- /dev/null
+++ b/question10/server.c
@@ -0,0 +1,29 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <grp.h>
+#include "socket.h"
+
+#define BLOCK_SIZE 1024
+
+int main (int argc , char ** argv) {
+
+    int socket_server = creer_serveur(PORT);
+	if(socket_server == -1){
+		return 1;
+	}
+    while(1){
+        char buf[BLOCK_SIZE];
+		int socket_client = accept_(socket_server);
+        FILE * file = fdopen(socket_client,"w+");
+        fgets(buf, BLOCK_SIZE, file);
+        printf(buf);
+        fgets(buf, BLOCK_SIZE, file);
+        printf(buf);
+        int pid = fork();
+        if(pid==0){
+
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/question10/socket.c b/question10/socket.c
new file mode 100644
index 0000000000000000000000000000000000000000..616334d9779d409c654ad89cb7edab8a587e6497
--- /dev/null
+++ b/question10/socket.c
@@ -0,0 +1,50 @@
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/ip.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdio.h>
+
+int creer_serveur(int port){
+	//On récupére le descripteur du socket serveur
+	int socket_serveur = socket(AF_INET, SOCK_STREAM, 0);
+	if (socket_serveur == -1){
+		/* traitement de l’erreur */
+		perror("problème lors de la création du socket_serveur");
+		return -1;
+	}
+
+	//Attachement de la socket serveur sur toutes les interfaces
+	struct sockaddr_in saddr;
+	saddr.sin_family = AF_INET; /* Socket ipv4 */
+	saddr.sin_port = htons(port); /* Port d’écoute */
+	saddr.sin_addr.s_addr = INADDR_ANY; /* écoute sur toutes les interfaces */
+
+	//rattachement de la socket a une adresse et un port
+	if (bind(socket_serveur, (struct sockaddr *)&saddr, sizeof(saddr)) == -1) {
+		perror("erreur lors du bind du socker_serveur");
+		return -1;
+		/* traitement de l’erreur */
+	}
+
+	if (listen(socket_serveur, 10) == -1) {
+		perror ( " erreur lors de l'execution de listen avec le socket_serveur " );
+		return -1;
+	}
+
+	return socket_serveur;
+}
+
+int accept_(int socket_serveur){
+
+	int socket_client;
+	socket_client = accept(socket_serveur, NULL, NULL);
+	if (socket_client == -1){
+		perror("erreur lors du accept");
+		return -1;
+		/* traitement d’erreur */
+	}
+
+	return socket_client;
+
+}
\ No newline at end of file
diff --git a/question10/socket.h b/question10/socket.h
new file mode 100644
index 0000000000000000000000000000000000000000..7071627194895ebff79d007a5e8a37d67a1b7035
--- /dev/null
+++ b/question10/socket.h
@@ -0,0 +1,7 @@
+#ifndef __SOCKET_H__
+#define __SOCKET_H__
+#define PORT 4000
+int creer_serveur(int port);
+int accept_(int socket_server);
+
+#endif
\ No newline at end of file
diff --git a/question9/pwg.c b/question9/pwg.c
index e6544d8ef9c7dd10a09f37bc4f5d04f3b2ecc197..e6380bbb9bcdeab180dd9c52e5532ceb3eec6bb4 100644
--- a/question9/pwg.c
+++ b/question9/pwg.c
@@ -6,6 +6,9 @@
 #include <grp.h>
 #include "check_pass.h"
 
+/*
+ * password encrypter 
+ */
 char* encrypter(char *password) {
     unsigned long seed[2];
     char salt[] = "$1$ierfdjef";
@@ -24,6 +27,9 @@ char* encrypter(char *password) {
     return password;
 }
 
+/*
+ * swap temp file with passwd file
+ */
 void swapPwdFile(){
     //remove /etc/admini/passwd
     removeFile(PATH_PWD_FILE);