Advertisement
Guest User

Untitled

a guest
Jan 26th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.94 KB | None | 0 0
  1. [szbylica@torus zad7]$ cat gnk.c gns.c
  2. #include <sys/types.h>
  3. #include <sys/socket.h>
  4. #include <stdio.h>
  5. #include <sys/un.h>
  6. #include <unistd.h>
  7. #include <stdlib.h>
  8. #include <signal.h>
  9. #include <arpa/inet.h>
  10.  
  11. #define N 30
  12. #define port 9000
  13.  
  14. static void blad(char opis[]){
  15. printf("%s/n",opis);
  16. exit(EXIT_FAILURE);
  17. }
  18.  
  19. void wyjscie(){
  20. printf("Koniec klienta!\n");
  21. exit(0);
  22. }
  23.  
  24. int main(){
  25.  
  26. int id_gniazda;
  27. int serwer_dlugosc;
  28. int nazwa_gniazda;
  29. char znak[N];
  30.  
  31. signal(SIGINT,wyjscie);
  32.  
  33. struct sockaddr_in adres_serwera;
  34.  
  35. adres_serwera.sin_addr.s_addr = inet_addr("127.0.0.1");
  36. adres_serwera.sin_family= AF_INET;
  37. adres_serwera.sin_port = htons(port);
  38.  
  39. // strcpy(adres_serwera.sun_path,"gniazdo_serwera");
  40.  
  41. id_gniazda=socket(AF_INET,SOCK_STREAM,0);
  42. if (id_gniazda==-1)
  43. blad("Nie moglem utworzyc gniazda.\n");
  44. else
  45. printf("Gniazdo zostalo utworzone %d.\n",id_gniazda);
  46.  
  47. if (connect(id_gniazda,(struct sockaddr *)&adres_serwera,sizeof(adres_serwera))==-1)
  48. blad("Nie moge nadac nazwy gniazdu.\n");
  49. else
  50. printf("Gniazdo otrzymalo swoja nazwe.\n");
  51.  
  52.  
  53.  
  54. printf("Podaj slowo!\n");
  55. scanf("%s",znak);
  56.  
  57. write(id_gniazda,znak,N);
  58.  
  59. read(id_gniazda,znak,N);
  60.  
  61. printf("Otrzymano slowo : %s\n\n",znak);
  62.  
  63.  
  64. close(id_gniazda);
  65. exit(0);
  66. }
  67. #include <sys/types.h>
  68. #include <sys/socket.h>
  69. #include <stdio.h>
  70. #include <sys/un.h>
  71. #include <unistd.h>
  72. #include <stdlib.h>
  73. #include <signal.h>
  74. #include <netinet/in.h>
  75. #include <arpa/inet.h>
  76.  
  77. #define N 30
  78. #define port 9000
  79.  
  80. static void blad(char opis[]){
  81. printf("%s/n",opis);
  82. exit(EXIT_FAILURE);
  83. }
  84.  
  85. void wyjscie(){
  86. printf("Koniec pracy serwera!\n");
  87.  
  88. exit(0);
  89. }
  90.  
  91. void *odbierz( int id_gniazda_k ){
  92.  
  93. char znak[N];
  94. int i,len;
  95.  
  96. read(id_gniazda_k,znak,N);
  97.  
  98. printf("Otrzymano wyraz : %s\n\n",znak);
  99.  
  100. len = strlen(znak);
  101. for( i = 0 ; i < len ; i ++ ){
  102. znak[i] = toupper(znak[i]);
  103. }
  104.  
  105. write(id_gniazda_k,znak,N);
  106.  
  107. close(id_gniazda_k);
  108. pthread_exit(0);
  109. }
  110.  
  111. int main(){
  112. int id_gniazda;
  113. int id_gniazda_k;
  114. int klient_dlugosc;
  115. int nazwa_gniazda;
  116. int i,zwr;
  117.  
  118. signal(SIGINT,wyjscie);
  119. struct sockaddr_in adres_serwera;
  120. struct sockaddr_in adres_klienta;
  121.  
  122. adres_serwera.sin_family= AF_INET;
  123. adres_serwera.sin_addr.s_addr = INADDR_ANY;
  124. adres_serwera.sin_port = htons(port);
  125. id_gniazda=socket(AF_INET,SOCK_STREAM,0);
  126.  
  127. // strcpy(adres_serwera.sin_path,"gniazdo_serwera");
  128.  
  129. if (id_gniazda==-1)
  130. blad("Nie moglem utworzyc gniazda.\n");
  131. else
  132. printf("Gniazdo zostalo utworzone %d.\n",id_gniazda);
  133.  
  134. if (bind( id_gniazda,(struct sockaddr *)&adres_serwera,sizeof(adres_serwera)) == -1 )
  135. blad("Nie moge nadac nazwy gniazdu.\n");
  136. else
  137. printf("Gniazdo otrzymalo swoja nazwe.\n");
  138.  
  139. while(1){
  140.  
  141. if (listen(id_gniazda,5)==-1)
  142. blad("Nie moge utworzy kolejki.\n");
  143. else
  144. printf("Kolejka zostala utworzona.\n");
  145.  
  146. klient_dlugosc = sizeof(adres_klienta);
  147.  
  148. printf("Oczekuje na klienta...\n");
  149. id_gniazda_k = accept(id_gniazda,(struct sockaddr *)&adres_klienta,&klient_dlugosc);
  150. if( id_gniazda < 0 ){
  151. printf("Blad!\n");
  152. exit(-1);
  153. }
  154.  
  155. pthread_t tid;
  156.  
  157. zwr = pthread_create(&tid,NULL,odbierz,id_gniazda_k);
  158.  
  159. }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement