Guest User

serv.c

a guest
May 26th, 2013
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include <sys/types.h>
  2.  
  3. #include <sys/socket.h>
  4.  
  5. #include <sys/un.h>
  6.  
  7. #include <stdio.h>
  8.  
  9. #include <stdlib.h>
  10.  
  11. #include <unistd.h>
  12.  
  13. #include <sys/stat.h>
  14.  
  15. #include <signal.h>
  16.  
  17. #define MAXBUF 256
  18.  
  19. char buf[MAXBUF];
  20.  
  21. int sockfd;
  22.  
  23. /*char* ReadCfg(){
  24.  
  25. struct stat st;
  26.  
  27. stat("/serv.cfg", &st);
  28.  
  29. char *spath=malloc(st.st_size-1);
  30.  
  31. FILE *file;
  32.  
  33. file=fopen("./serv.cfg","r");
  34.  
  35. fgets(spath, st.st_size, file);
  36. fclose(file);
  37.  
  38. return spath;
  39.  
  40. }
  41.  
  42. char* CreateIPC(char *sockpath){
  43.  
  44. int saddrlen;
  45.  
  46. struct sockaddr_un serv_addr;
  47.  
  48. if((sockfd=socket(AF_UNIX,SOCK_DGRAM,0))<0){
  49.  
  50. printf("Cannot create socket\n");
  51.  
  52. exit(1);
  53.  
  54. }
  55.  
  56. bzero(&serv_addr,sizeof(serv_addr));
  57.  
  58. serv_addr.sun_family=AF_UNIX;
  59.  
  60. strcpy(serv_addr.sun_path,sockpath);
  61.  
  62. saddrlen=sizeof(serv_addr.sun_family)+strlen(serv_addr.sun_path); //почему не sizof(serv_addr)
  63.  
  64. if(bind(sockfd,(struct sockaddr *)&serv_addr,saddrlen)<0){
  65.  
  66. printf("error while binding socket\n");
  67.  
  68. exit(1);
  69.  
  70. }
  71.  
  72. }*/
  73.  
  74. void hup_handler(int sign){
  75.  
  76. printf("Signal recieved\n");
  77.  
  78. }
  79.  
  80. main(){
  81.  
  82. struct sigaction sa;
  83.  
  84. sa.sa_handler=hup_handler;
  85.  
  86. sigaction(SIGHUP,&sa,NULL);
  87.  
  88. struct sockaddr_un clnt_addr;
  89.  
  90.  
  91.  
  92. int n,caddrlen,max_caddrlen,saddrlen;
  93.  
  94. char *sockpath;
  95. /*ReadCfg();
  96.  
  97. /*if(access(sockpath, F_OK)==0){
  98.  
  99. printf("IPC already exists!\n");
  100.  
  101. exit(1);
  102.  
  103. }
  104.  
  105. CreateIPC(sockpath);
  106.  
  107.  
  108.  
  109. max_caddrlen=sizeof(clnt_addr);
  110.  
  111. /*while(1){
  112.  
  113. caddrlen=max_caddrlen;
  114.  
  115. n=recvfrom(sockfd,buf,MAXBUF,0, (struct sockaddr *) &clnt_addr,&caddrlen);
  116.  
  117. if(n<0){
  118.  
  119. printf("Error while receiving the message");
  120.  
  121. exit(1);
  122.  
  123. }
  124.  
  125. if(sendto(sockfd,buf,n,0,(struct sockaddr *)&clnt_addr,caddrlen)!=n){
  126.  
  127. printf("Error while sending the message");
  128.  
  129. exit(1);
  130.  
  131. }
  132.  
  133. }*/
  134.  
  135. printf("Before cycle\n");
  136.  
  137. while(1)
  138.  
  139. sleep(1);
  140.  
  141. }
Advertisement
Add Comment
Please, Sign In to add comment