server.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * File: server.h
  3. * Author: Arthur Brandao
  4. *
  5. * Created on 14 novembre 2018
  6. */
  7. #ifndef SERVER_H
  8. #define SERVER_H
  9. /* --- Include --- */
  10. #include <stdlib.h>
  11. #include <stdio.h>
  12. #include <sys/socket.h>
  13. #include <sys/types.h>
  14. #include <arpa/inet.h>
  15. #include <unistd.h>
  16. #include <string.h>
  17. /* --- Constantes --- */
  18. #define SERV_UDP 1
  19. #define SERV_TCP 2
  20. /* --- Structures --- */
  21. typedef struct server* Server;
  22. struct server{
  23. int type; /* Le type de serveur (UDP ou TCP) */
  24. /* Var server */
  25. int socket; /* Socket du serveur */
  26. int socket_client; /* Socket du client (TCP uniquement) */
  27. struct sockaddr_in serv; /* Adresse du serveur */
  28. struct sockaddr_in client; /* Adresse du client */
  29. socklen_t addr;
  30. /* Pointeur de fonction */
  31. void (*server_bind)(Server, int);
  32. ssize_t (*server_receive)(Server, char*, size_t);
  33. void (*server_send)(Server, char*);
  34. void (*server_accept)(Server);
  35. };
  36. /* --- Fonction --- */
  37. Server server_create_udp();
  38. Server server_create_tcp();
  39. void server_close_and_free(Server);
  40. void server_close_client(Server);
  41. #endif /* SERVER_H */