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 funzionano mi 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
}