Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. /* Napisz programy klienta i serwera echa
  2. (analogiczne do Zadania 3)
  3. pracujące na gniazdach w dziedzinie
  4. Uniksa (na jednej maszynie).*/
  5. #include<sys/types.h>
  6. #include<sys/socket.h>
  7. #include<stdio.h>
  8. #include<sys/un.h>
  9. #include<arpa/inet.h>
  10. #include<string.h>
  11. #include<signal.h>
  12. #include<unistd.h>
  13.  
  14. /*bez pelnej obslugi bledow */
  15.  
  16. struct my_msg{
  17. char text[255];
  18. };
  19.  
  20. char *plik;
  21.  
  22. void obsluga(){
  23. remove(plik);
  24. kill(getpid(), SIGKILL);
  25. }
  26.  
  27. int main(int argc, char *argv[])
  28. {
  29. signal(SIGINT, obsluga);
  30. plik = argv[1];
  31. int sockfd;
  32. struct sockaddr_un server_addr, client_addr;
  33. struct my_msg msg;
  34. socklen_t len;
  35.  
  36. /*tworze gniazdo - na razie tylko czesc "protokol" */
  37. sockfd = socket(AF_UNIX, SOCK_DGRAM, 0);
  38.  
  39. server_addr.sun_family = AF_UNIX; /*IPv4*/
  40. strcpy(server_addr.sun_path, argv[1]);
  41.  
  42. bind(sockfd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr_un));
  43.  
  44. while(1) {
  45. recvfrom(sockfd, &msg, sizeof(msg), 0, (struct sockaddr *)&client_addr, &len);
  46. printf("Wiadomosc (od: %s): %s\n", client_addr.sun_path, msg.text);
  47. sendto(sockfd, &msg, sizeof(msg), 0, (struct sockaddr *)&client_addr, len);
  48. }
  49.  
  50.  
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement