server.h 986 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 <sys/types.h>
  11. #include <sys/socket.h>
  12. #include <arpa/inet.h>
  13. /* --- Constantes --- */
  14. #define SERV_UDP 1
  15. #define SERV_TCP 2
  16. /* --- Structures --- */
  17. typedef struct server* Server;
  18. struct server{
  19. int type; /* Le type de serveur (UDP ou TCP) */
  20. /* Var server */
  21. int socket; /* Socket du serveur */
  22. int socket_client; /* Socket du client (TCP uniquement) */
  23. struct sockaddr_in serv; /* Adresse du serveur */
  24. struct sockaddr_in client; /* Adresse du client */
  25. socklen_t addr;
  26. /* Pointeur de fonction */
  27. void (*server_bind)(Server, int);
  28. ssize_t (*server_receive)(Server, char*, size_t);
  29. void (*server_send)(Server, char*);
  30. void (*server_accept)(Server);
  31. };
  32. /* --- Fonction --- */
  33. Server server_create_udp();
  34. Server server_create_tcp();
  35. void server_close(Server);
  36. void server_close_client(Server);
  37. #endif /* SERVER_H */