ora stavo provando a creare due funzioni, una nel client, l'altra nel serve per fare in modo che i due programmi si possano scambiare dei file... ma nn funzionanomi aiutate a capire xche?? grazie...
codice:int invio_file(SOCKET sockinvio){ char thisbuffer[1000]; char nomefile[1000]; char nomefileclient[1000]; int nBytesP; strcpy(thisbuffer,""); strcat(thisbuffer,"nomefile:"); printf(thisbuffer);//richiesta di inserimento nome file strcpy(thisbuffer,""); //cancelliamo buffer strcpy(nomefile,""); strcpy(nomefileclient,""); gets(nomefile); //prendiamo nome del file //riceviamo richiesta di invio nome destinazione nBytesP = recv(sockinvio, thisbuffer, BUFFERSIZE, 0); thisbuffer[nBytesP] = '\0'; printf(thisbuffer); //richiesta del nome del file da dare al client gets(nomefileclient); SendTo(sockinvio,nomefileclient); //*** inizio invio file ***// char filebuffer[10]; FILE *file = fopen(nomefile,"rb"); if (file==NULL) return 0; fseek (file , 0 , SEEK_END); long lSize = ftell (file); rewind (file); for(int x = 0; x < lSize ; x++) { fread( filebuffer, 1, 1, file); SendTo(sockinvio,filebuffer); } fclose(file); #ifdef DEBUG_MODE system("pause"); #endif return 1; }
codice:void ricezione_file(SOCKET sockinvio){ int nBytesP; char thisbuffer[1000]; char nomefile[1000]; strcpy(nomefile,""); strcpy(thisbuffer,""); strcat(thisbuffer,"url del file inviato:"); //invio richiesta nome file SendTo(sockinvio,thisbuffer); strcpy(thisbuffer,"");//cancellazione buffer nBytesP = recv(sockinvio, nomefile, BUFFERSIZE, 0); //ricezione nome file nomefile[nBytesP] = '\0'; #ifdef DEBUG_MODE printf("nome file: %s",nomefile); #endif //*** inizio ricezione file ***// char filebuffer[10]; FILE *file; file = fopen (nomefile,"wb"); while(recv(sockinvio,filebuffer, 1, 0) != 0){ //scriviamo tutto il file... filebuffer[1] = '\0'; fprintf(file,"%s",filebuffer); } fclose (file); #ifdef DEBUG_MODE system("pause"); #endif }

mi aiutate a capire xche?? grazie...
Rispondi quotando