Advertisement
icebit

ppr_c_one

Jun 15th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.79 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <string.h>
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <netinet/in.h>
  8. #include <netdb.h>
  9. #include <arpa/inet.h>      // inet_ntoa
  10. #include <time.h>           // time
  11. //======================================================================
  12. int error( int ern, const char *err ){
  13.     perror( err );
  14.     return ern;
  15. }
  16. //======================================================================
  17. int main( void )
  18. {
  19.     /* zmienne predefiniowane *****************************************/
  20.     int     port   = 12345;
  21.     char    host[] = "192.168.10.150";
  22.     /* zmienne niezainicjowane ****************************************/
  23.     int     fd, n;
  24.     struct  sockaddr_in serv_addr;
  25.     struct  hostent *server;
  26.     char    buffer[128];
  27.    
  28.     /* tworzymy gniazdo ***********************************************/
  29.     fd = socket(AF_INET, SOCK_STREAM, 0);
  30.    
  31.     if (fd < 0)
  32.         return error( 1, "socket()");
  33.  
  34.     /* pobieramy informacje o serwerze ********************************/
  35.     server = gethostbyname( host );
  36.  
  37.     if( server == NULL )
  38.         return error( 2, "gethostbyname()" );
  39.    
  40.     /* zapelniamy strukture zerami (inicjujemy) ***********************/
  41.     bzero((char *) &serv_addr, sizeof(serv_addr));
  42.    
  43.     /* przypisujemy parametry *****************************************/
  44.     serv_addr.sin_family = AF_INET;         // typ gniazda
  45.     serv_addr.sin_port = htons(port);       // port
  46.    
  47.     bcopy( (char *) server->h_addr, (char *) &serv_addr.sin_addr.s_addr, server->h_length );
  48.    
  49.     /* nawiazujemy polaczenie *****************************************/
  50.     if( connect( fd, (struct sockaddr *) &serv_addr, sizeof( serv_addr ) ) < 0 )
  51.         return error( 3, "connect()" );
  52.  
  53.    
  54.     int buffSize = 128;
  55.     /* zerujemy bufor *************************************************/
  56.     bzero( buffer, 128 );
  57.  
  58.             //czytamy z STDIN
  59.             int nsc = 0;
  60.             int actIndex = 0;
  61.             //while ( (nsc = scanf("%s", buffer)) != EOF){
  62.             while( nsc = getchar() ){
  63.                 buffer[actIndex] = nsc;
  64.                 actIndex ++;
  65.                
  66.                 if(actIndex >= 128 || nsc == EOF){
  67.                     n = write( fd, buffer, actIndex );
  68.                     actIndex = 0;
  69.                    
  70.                     if(nsc == EOF){ printf("%d", nsc); break;}
  71.                 }
  72.                
  73.             }
  74.             //sprintf( buffer, "Current time: %d", (int) time( NULL ) );
  75.             //sprintf(buffer, "proba 12");
  76.             //buffer[0] = 'z';
  77.             //buffer[1] = 'b';
  78.             //while(fgets(
  79.             //  n = write( fd, buffer, sizeof(buffer) );
  80.             //  if( n < 0 )     // sprawdzamy, czy wystapil blad ....
  81.             //      perror( "write()" );
  82.             //  }
  83.                
  84.     /* konczymy polaczenie ********************************************/
  85.     close(fd);
  86.    
  87.     //------------------------------------------------------------------
  88.     return 0;
  89. }
  90. //======================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement