Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Problema con invio buffer da server a client
#1
Salve, sto' applicando il pezzo di codice trovato qui http://www.tenouk.com/ModuleA1.html c per poter inviare dal server al client
il risultato del comando dir del client.
Debugando lato server vedo che tutto il contenuto del risultato
del comando dir viene inviato pure il nome di eventuali file messi
da me dentro la cartella da listare.
Tant'e' vero che alla fine del comando mi viene inviato il numero dei caratteri inviati pero' mi da' 0 caratteri ricevuti e questo non me lo spiego
dato che la funzione lato client che si occupa del conteggio dei caratteri ricevuti e di stamparli funge bene.
Debugando lato client vedo invecie che a volte lo stampaggio a monitor
del risultato del comando dir si pianta sempre a questo punto "\nRDO SYS H e poi si pianta dentro la funzione ricevi() e non me ne spiego il motivo, debugando invecie nel lato server invecie riesce a stampare tutto il contenuto senza problemi tranne per il fatto che non so' perche' ma il server invia il nome degli eventuali file interni ma il client non ne stampa il nome ma stampa solo i file "." e "..".
Non riesco quindi a capire il motivo per cui debugando nel lato client
succede che a volte la stampa si ferma nel punto di cui ti ho parlato
prima o piu' avanti in base a come gli gira e questo non ha senso logico
dato che se c'e' un problema o ti pianti sempre in un punto o sempre
in un altro.
Questo e' la parte di codice del client in cui si pianta

Citazione: else
{
//ricevi il risultato del comando LIST dal canale dati
//e stampalo a monitor
if(caratteri_rx=ricevi_dati(PRINT)==-1)
{
closep(conn_sock_dati); //chiudi il canale dati se hai riscontrato un problema di ricezione
}
else
{
//ricevi il numero di caratteri spediti e stampali
ricevi(recvchar); //SI PIANTA SEMPRE DENTRO A QUESTA
caratteri_tx=atoi(recvchar);
printf("Numero di caratteri trasmessi: %d\n", caratteri_tx);
printf("Numero di caratteri ricevuti: %d\n", caratteri_rx);
}

Allego i due sorgenti.

La parte di codice del lato server deputata allo stampaggio dei risultatati
del comando dir (vedere http://www.tenouk.com/ModuleA1.html)
l' ho modificata mettendo
caratteri=invia_dati(DIR, Buffer, 5);
al posto della printf() come da originale per poter inviare il risultato verso il client e non nello standard output del server.
Per favore datemi una mano perche' io ho dato forfe' perche' e' un pezzo
che ci sbatto la testa senza spiegarmi il perche' di tale comportamento #-o #-o ?% ?% ?%
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)