ServerMain.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. int data;
  41. while(streamGetInt(in, &data) != -1)
  42. {
  43. printf("%d ", data);
  44. }
  45. printf("\n");
  46. }
  47. int main()
  48. {
  49. serverInitDefaults(&server);
  50. signal(SIGINT, interruptHandler);
  51. signal(SIGKILL, interruptHandler);
  52. if(serverInit(&server, 3, 6543) == -1)
  53. {
  54. return EXIT_FAILURE;
  55. }
  56. serverRegisterHandler(&server, package0);
  57. serverRegisterHandler(&server, package1);
  58. serverRegisterHandler(&server, package2);
  59. serverWaitForConnection(&server);
  60. serverRemove(&server);
  61. return EXIT_SUCCESS;
  62. }