PDA

Visualizza la versione completa : [C++] Esempio di applicazione client/server con socket


mamo139
20-10-2006, 22:12
vi allego due stupidissimi programmi che dovrebbero fare uno stupidissimo collegamento server/client in cui il client manda al server il messaggio "ciao!", ma sto ciao non arriva :dh: :dh:

http://thesolution.altervista.org/server-client.zip

ps: ho provato a connettermi al server con
TELNET 127.0.0.1 1000
e se gli mando qualche stringa la legge perfettamente...
quindi credo che il problema sia nel client!!!!
:confused:

oregon
20-10-2006, 22:14
E come lo scarico?

mamo139
20-10-2006, 22:14
eheh che idiota che sono :zizi: :zizi:
http://thesolution.altervista.org/server-client.zip

mamo139
20-10-2006, 22:19
sembra che anche altervista rompa un po...
al massimo basta connettersi ad http://thesolution.altervista.org e poi aggiungere il nome del file dalla barra degli indirizzi...

oregon
20-10-2006, 22:38
Nel client

int x = SendTo(sock, "ciao!\n");

... invia il ritorno a capo ...

mamo139
21-10-2006, 14:06
xche cos invece va??? :confused:

oregon
21-10-2006, 14:40
Originariamente inviato da mamo139
xche cos invece va??? :confused:

Non fai prima a provare che a chiedere?

mamo139
21-10-2006, 15:39
no cmq tutto risolto... grazie mille :zizi:

mamo139
22-10-2006, 16:09
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 :mad: mi aiutate a capire xche?? grazie...



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;
}




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


}

Loading