瀏覽代碼

:sparkles: Serveur UDP

Arthur Brandao 6 年之前
父節點
當前提交
8910bc2900
共有 3 個文件被更改,包括 30 次插入4 次删除
  1. 17 2
      Serveur/bomberstudent_server.c
  2. 6 1
      Serveur/constante.h
  3. 7 1
      Serveur/main.c

+ 17 - 2
Serveur/bomberstudent_server.c

@@ -18,13 +18,28 @@ arraylist post;
 
 /* --- Fonctions privées --- */
 void* udp_thread(void* data){
-    /*Server s;
+    Server s;
+    char buffer[BUFFER_SIZE];
     //Cast data en serveur
     s = (Server) data;
     //Detache le thread
     if(pthread_detach(pthread_self()) != 0){
         return NULL;
-    }*/
+    }
+    //Boucle attente
+    while(true){
+        //Attente connexion
+        if(s->server_receive(s, buffer, BUFFER_SIZE) == ERR){
+            addserror("Impossible de recevoir le demande de recherche");
+            continue;
+        }
+        //Si la phrase est correcte
+        if(strncmp(buffer, SEARCH_SERV, strlen(buffer)) == 0){
+            if(!s->server_send(s, "i'm a bomberstudent server")){
+                addserror("Impossible de repondre à la recherche");
+            }
+        }
+    }
     return NULL;
 }
 

+ 6 - 1
Serveur/constante.h

@@ -9,7 +9,7 @@
 #define CONSTANTE_H
 
 /* --- General --- */
-#define BUFFER_SIZE 512
+#define BUFFER_SIZE 2048
 
 /* --- Fichier --- */
 #define STDIN 0
@@ -24,5 +24,10 @@
 /* --- Null --- */
 #define null NULL
 
+/* --- Application --- */
+#define PORT_UDP 18624
+#define PORT_TCP 18642
+#define SEARCH_SERV "looking for bomberstudent servers"
+
 #endif /* CONSTANTE_H */
 

+ 7 - 1
Serveur/main.c

@@ -1,9 +1,11 @@
 #include <stdio.h>
 #include <stdlib.h>
+#include <unistd.h>
 #include "json.h"
 #include "arraylist.h"
 #include "server.h"
 #include "error.h"
+#include "bomberstudent_server.h"
 
 int parse(){
     char str[200];
@@ -164,6 +166,10 @@ int main(){
     //return encode();
     //return array_list();
     //return serv();
-    return serv_udp();
+    //return serv_udp();
     //return serv_tcp();
+    
+    ini_server();
+    launch_udp_server(PORT_UDP);
+    pause();
 }