Advertisement
Guest User

server

a guest
Jan 16th, 2014
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.88 KB | None | 0 0
  1. #include <sys/socket.h>
  2. #include <netinet/in.h>
  3. #include <arpa/inet.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <unistd.h>
  7. #include <errno.h>
  8. #include <string.h>
  9. #include <sys/types.h>
  10. #include <time.h>
  11.  
  12. #define SEQ
  13.  
  14. #if defined(SEQ)
  15. #include <sys/un.h>
  16. #endif
  17.  
  18. int main(int argc, char *argv[])
  19. {
  20.     int listenfd = 0, connfd = 0;
  21.     char sendBuff[1025];
  22.     time_t ticks;
  23.  
  24. #if defined(SEQ)
  25.     int len;
  26.     struct sockaddr_un local;
  27.  
  28.     // create a sequential packet socket
  29.     if ((listenfd = socket(AF_UNIX, SOCK_SEQPACKET, 0)) == -1) {
  30.     printf("Error!\n");
  31.     }
  32.  
  33.     local.sun_family = AF_UNIX;
  34.     strcpy(local.sun_path, "thesocket");
  35.     unlink(local.sun_path);
  36.     len = strlen(local.sun_path) + sizeof(local.sun_family);
  37.     if (bind(listenfd, (struct sockaddr *)&local, len) == -1)
  38.     {
  39.     printf("another error\n");
  40.     }
  41.  
  42.     if (listen(listenfd, 5) == -1)
  43.     {
  44.     printf("listen() error\n");
  45.     }
  46. #else
  47.     struct sockaddr_in serv_addr;
  48.  
  49.     listenfd = socket(AF_INET, SOCK_STREAM, 0);
  50.     memset(&serv_addr, '0', sizeof(serv_addr));
  51.     memset(sendBuff, '0', sizeof(sendBuff));
  52.  
  53.     serv_addr.sin_family = AF_INET;
  54.     serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
  55.     serv_addr.sin_port = htons(5000);
  56.  
  57.     bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
  58.  
  59.     listen(listenfd, 10);
  60. #endif
  61.  
  62.     while(1)
  63.     {
  64.         connfd = accept(listenfd, (struct sockaddr*)NULL, NULL);
  65.  
  66.         ticks = time(NULL);
  67.         snprintf(sendBuff, sizeof(sendBuff), "%.24s\r\n", ctime(&ticks));
  68.         write(connfd, sendBuff, strlen(sendBuff));
  69.  
  70. printf("sleeping\n");
  71.     sleep(1);
  72. printf("reading\n");
  73.     char buf[512];
  74.     int bytesRead = read(connfd, buf, sizeof(buf));
  75.     printf("bytesRead %d\n", bytesRead);
  76. printf("sleeping\n");
  77.     sleep(10);
  78. printf("done\n");
  79.  
  80.         close(connfd);
  81.         sleep(1);
  82.      }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement