mituri

[C](server) serwer wysyla do klienta wynik polecenia"uptime"

Oct 5th, 2015
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include <sys/socket.h>
  2. #include <arpa/inet.h>
  3. #include <stdio.h>
  4. #include <time.h>
  5. #include <string.h>
  6. #include <stdlib.h>
  7. #include <unistd.h>
  8.  
  9. #define MAX_BUFFER 128
  10. #define MAX_BACKLOG 5
  11.  
  12. int main(int argc, int *argv[]){
  13.  
  14. int serverFd, connectionFd;
  15. struct sockaddr_in servaddr;
  16.  
  17. if (argc != 2) {
  18. fprintf(stderr, "Usage: %s <Server Port>\n", argv[0]);
  19. exit(1);
  20. }
  21.  
  22. int port = atoi(argv[1]);
  23. serverFd = socket(AF_INET, SOCK_STREAM, 0);
  24.  
  25. memset(&servaddr, 0 ,sizeof(servaddr));
  26. servaddr.sin_family = AF_INET;
  27. servaddr.sin_port = htons(port);
  28. servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  29.  
  30. bind(serverFd, (struct sockaddr*)&servaddr, sizeof(servaddr));
  31. listen(serverFd, MAX_BACKLOG);
  32.  
  33. system("uptime > text");
  34. FILE *file = fopen("text", "r");
  35. if( !file) perror ("text.txt"),exit(1);
  36.  
  37. char uptimeTab[MAX_BUFFER + 1];
  38. int i;
  39. for( i = 0; i < MAX_BUFFER; i++){
  40. fscanf (file, "%c", &uptimeTab[i]);
  41. }
  42.  
  43. while (1){
  44. connectionFd = accept(serverFd, (struct sockaddr*)NULL, NULL);
  45. if(connectionFd >= 0){
  46.  
  47. char buffer[MAX_BUFFER + 1];
  48. snprintf(buffer, MAX_BUFFER, uptimeTab );
  49. write(connectionFd, buffer, strlen(buffer));
  50. close(connectionFd);
  51. }
  52. }
  53.  
  54. return(0);
  55. }
Advertisement
Add Comment
Please, Sign In to add comment