Ho il seguente problema:
nel programmare una LAN utilizzando C++ e winsock (senza passare per MFC) mi si presenta un problema di flusso!(adesso chiarisco)
Innanzitutto chiarisco che ho dato luogo a dei socket asincronici con WSAAsyncSelect.
Nel caso di invio di un singolo valore, per ipotesi, dal client verso il server,utilizzo direttamente 'send'; il lato server riceve la notifica FD_READ e procede quindi a prelevare il messaggio con recv.
Il PROBLEMA si pone quando voglio inviare un vettore elevato di dati,
nel mio caso specifico, ho un vettore di 500 dati double. Io procedo in questo modo:
1. attivo un loop che va da 1 a 500, ad ogni passaggio del loop, prelevo il dato (lo trasformo in char, lo protocollo) e lo invio con send.
Ad ogni passaggio del loop in sostanza invio un messaggio da 64 byte.
Questi, vengono ricevuti e visualizzati dal server, il problema è che quando il vettore supera gli 80 dati i rimanenti non vengono ricevuti.
SOLUZIONE SPARTANA: ho inserito un semplice Beep(100,10) nel loop in modo da rallentarlo, in tal caso i dati vengono ricevuti tutti...ma mi sempbra una cosa da terzo mondo.
Ora deve essere chiaro che ho l'esigenza di inviare pacchetti da 64 byte in quanto i dati che voglio inviare non sono dati statici e il vettore non è statico. voglio arrivare a gestire dati in realtime che potrebbero essere generati o meno e in qualsiasi epoca. Io in sostanza ho un generatore di valori che può creare o meno un numero variabile di dati. Il caso del loop dato un vettore fisso l'ho creato solo per estremizzare e vedere il caso in cui mi vengano prodotti molti valori in un infinitesimo di secondo.
COME POSSO SPEDIRE CONTINUAMENTE UN GROSSO QUANTITATIVO DI DATI SENZA AVERE DISPERSIONE???
credevo che FD_WRITE potesse aiutarmi , ma niente.
HELP