Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. #include <fcntl.h>
  2. #include <unistd.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. #define ROZMIAR_BUFORA 512
  7. #define TRUE 1
  8.  
  9. // NAWIĄZANIE POŁĄCZENIA Z SERWEREM
  10. void connect()
  11. {
  12. while (open("bin/lockfile",O_CREAT|O_EXCL, 0)==-1)
  13. {
  14. printf("Serwer zajęty, proszę czekać!\n");
  15. sleep(3);
  16. }
  17. }
  18.  
  19. // WYSYŁANIE WIADOMOŚCI DO SERWERA
  20. void sendMessage()
  21. {
  22. int dane;
  23. char bufor[ROZMIAR_BUFORA];
  24. memset(&bufor[0], 0, sizeof(bufor));
  25. char znak[1];
  26. int licznik = 0;
  27.  
  28. char nazwa_uzytkownika[100];
  29. getlogin_r(nazwa_uzytkownika, 100);
  30. char output[1024];
  31.  
  32. while((dane = open("dane.txt", O_RDWR|O_CREAT|O_APPEND, 0711)) < 0) {}
  33.  
  34. if(dane != 0)
  35. {
  36. printf("\n%s:\n", nazwa_uzytkownika);
  37. while(TRUE)
  38. {
  39. read(0,znak,1);
  40. if(znak[0] == 27)
  41. {
  42. licznik = sprintf(output, "%s:\n%s ", nazwa_uzytkownika, bufor);
  43. write(dane, output, licznik);
  44. break;
  45. }
  46. bufor[licznik] = znak[0];
  47. licznik++;
  48. }
  49. }
  50. }
  51.  
  52. // ODEBRANIE WIADOMOŚCI ZWROTNEJ OD SERWERA
  53. void getMessage()
  54. {
  55. int wyniki = 0;
  56. char bufor[ROZMIAR_BUFORA];
  57. memset(&bufor[0], 0, sizeof(bufor));
  58.  
  59. while((wyniki = open("wyniki.txt", O_RDWR)) < 0) {}
  60.  
  61. if(wyniki != 0)
  62. {
  63. while(read(wyniki,bufor,ROZMIAR_BUFORA) < 1) {}
  64. printf("\nSERWER WYSŁAŁ WIADOMOŚĆ:\n%s", bufor);
  65. // close(wyniki);
  66. printf("\n");
  67. }
  68. }
  69.  
  70. // OCZYSZCZANIE BUFORÓW
  71. void disconnect()
  72. {
  73. unlink("wyniki.txt");
  74. }
  75.  
  76. // NAGŁÓWEK DLA KLIENTA
  77. void header(char nazwa_uzytkownika[100])
  78. {
  79. printf("\n");
  80. printf("┬┌─┬ ┬┌─┐┌┐┌┌┬┐\n");
  81. printf("├┴┐│ │├┤ │││ │ \n");
  82. printf("┴ ┴┴─┘┴└─┘┘└┘ ┴ \n");
  83. printf("Wyślij wiadomość do serwera i czekaj na odpowiedź.");
  84. printf("\n");
  85. printf("UŻYTKOWNIK: %s\n", nazwa_uzytkownika);
  86. }
  87.  
  88. // FUNKCJA GŁÓWNA
  89. int main(int argc, char *argv[])
  90. {
  91. char nazwa_uzytkownika[100];
  92. getlogin_r(nazwa_uzytkownika, 100);
  93.  
  94. header(nazwa_uzytkownika);
  95. // connect();
  96. sendMessage();
  97. getMessage();
  98. disconnect();
  99.  
  100. getchar();
  101. return 0;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement