Advertisement
Guest User

client

a guest
Jun 30th, 2015
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.14 KB | None | 0 0
  1. //ho tolto per il momento le le varie timeval etc. che tra l'altro non ho capito cosa ci fai
  2. void TrasferisciFile(int DescrittoreSocket) {
  3.        
  4.         int lung;
  5.         int fd_sorg;
  6.         char buff[4096];
  7.         DIR *dir;  // puntatore alla directory su cui lavorare
  8.         char nomefile[80];
  9.         int letti,scritti;
  10.  
  11.         memset((char *) &buff, 0, sizeof(buff));
  12.         memset((char *) &nomefile, 0, sizeof(nomefile));
  13.         printf("Inserire il nome del file da trasferire ");
  14.         scanf("\n%s",nomefile);//ho aggiunto \n alla scanf perchè a volte il buffer risulta sporco e non scrive bene la stringa
  15.         lung=strlen(nomefile);
  16.         printf ("lung = %d\n",lung);
  17.         nomefile[lung]='\0';
  18.         printf ("Invio File %s\n",nomefile); //invio il nome del file da trasferire
  19.         write(DescrittoreSocket, &nomefile, lung+1);
  20.         if(getcwd(directory, sizeof(directory)) != NULL )
  21.     {
  22.                 lendir=strlen(directory);
  23.                 directory[lendir]='\0';
  24.                 printf("directory locale %s \n",directory);
  25.         } //fine if getcwd
  26.         else
  27.     {
  28.         printf("Errore’: %s",directory);
  29.         exit(1);
  30.         }
  31.     // apro la directory
  32.     if ((dir = opendir(directory)) == NULL)
  33.     {
  34.          perror("Errore apertura directory!!!");
  35.         exit(-2);
  36.         }
  37.  
  38.     // scorre la directory appena apert
  39.     printf("Nome File da trasferire %s \n",nomefile);
  40.     // Apro il file per il trasferimento
  41.     fd_sorg = open(nomefile, O_RDONLY);
  42.     if (fd_sorg < 0)
  43.     {  
  44.     perror("open file sorgente");
  45.     }                                                                                      
  46.     else
  47.     {  
  48.  
  49.         // trasferisco il file
  50.         printf("trasferisco\n");
  51.          while(1)
  52.         {
  53.                      letti = read(fd_sorg, &buff, sizeof(buff));
  54.  
  55.             if(letti>0)
  56.             {
  57.                 printf("%d valore letti \n",letti);
  58.                 printf("%s\n",buff);
  59.                 scritti=sand(DescrittoreSocket,&buff, sizeof(buff),0);
  60.             }
  61.             if(letti<=0)
  62.             {
  63.                 break;
  64.             }        
  65.         }  
  66.     }
  67.  
  68.     close(fd_sorg);
  69.     closedir(dir);
  70.     printf("Trasferimento terminato!\n);
  71.     return;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement