ServerMain.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <stdlib.h>
  4. #include <signal.h>
  5. #include "Server.h"
  6. Server server;
  7. void interruptHandler(int signal)
  8. {
  9. serverRemove(&server);
  10. exit(EXIT_SUCCESS);
  11. }
  12. void package0(Stream* in)
  13. {
  14. int i;
  15. if(streamGetInt(in, &i) != -1)
  16. {
  17. printf("first number: %d\n", i);
  18. }
  19. else
  20. {
  21. printf("first number: ---\n");
  22. }
  23. if(streamGetInt(in, &i) != -1)
  24. {
  25. printf("second number: %d\n", i);
  26. }
  27. else
  28. {
  29. printf("second number: ---\n");
  30. }
  31. }
  32. void package1(Stream* in)
  33. {
  34. char buffer[128];
  35. streamGetChars(in, buffer, 128);
  36. printf("%s\n", buffer);
  37. }
  38. void package2(Stream* in)
  39. {
  40. printf("I'm not containing any data.\n");
  41. }
  42. int main()
  43. {
  44. serverInitDefaults(&server);
  45. signal(SIGINT, interruptHandler);
  46. signal(SIGKILL, interruptHandler);
  47. if(serverInit(&server, 3, 6543) == -1)
  48. {
  49. return EXIT_FAILURE;
  50. }
  51. serverRegisterHandler(&server, package0);
  52. serverRegisterHandler(&server, package1);
  53. serverRegisterHandler(&server, package2);
  54. serverWaitForConnection(&server);
  55. serverRemove(&server);
  56. return EXIT_SUCCESS;
  57. }