misterx
04-09-2013, 12:53
ciao,
ho un programma server che invia pacchetti ad un client così formati:
<inizio>, ............. contenuto del pacchetto, <fine;>
sino a quando il client riceve un pacchetto non vi sono problemi ma sembrerebbe che windows dopo l'invio del primo pacchetto "singolo", ne concateni 'n' prima di inviarli cioè:
<inizio>, ............. contenuto del pacchetto, <fine;><inizio>, ............. contenuto del pacchetto, <fine;><inizio>, ............. contenuto del pacchetto, <fine;><inizio>, ............. contenuto del pacchetto, <fine;>
e così via.
Per capire se il pacchetto che arriva è completo uso due variabili inizialmente inizializzate a zero:
if (strstr(Buf, "<inizio>")) inizio++;
if (strstr(Buf, "<fine>")) fine++;
if (inizio == 1 && fine == 1)
elaboro il pacchetto
Problema
buf può contenere 'n' pacchetti e non uno solo quindi dovrei capire se nei pacchetti che arrivano continuamente esiste <inizio> e <fine> ed eventualmente suddividerli per elaborarli.
Chiedo a chi ha già avuto un problema simile come si può risolvere.
Se non sonon stato chiaro, chiedete pure.
ho un programma server che invia pacchetti ad un client così formati:
<inizio>, ............. contenuto del pacchetto, <fine;>
sino a quando il client riceve un pacchetto non vi sono problemi ma sembrerebbe che windows dopo l'invio del primo pacchetto "singolo", ne concateni 'n' prima di inviarli cioè:
<inizio>, ............. contenuto del pacchetto, <fine;><inizio>, ............. contenuto del pacchetto, <fine;><inizio>, ............. contenuto del pacchetto, <fine;><inizio>, ............. contenuto del pacchetto, <fine;>
e così via.
Per capire se il pacchetto che arriva è completo uso due variabili inizialmente inizializzate a zero:
if (strstr(Buf, "<inizio>")) inizio++;
if (strstr(Buf, "<fine>")) fine++;
if (inizio == 1 && fine == 1)
elaboro il pacchetto
Problema
buf può contenere 'n' pacchetti e non uno solo quindi dovrei capire se nei pacchetti che arrivano continuamente esiste <inizio> e <fine> ed eventualmente suddividerli per elaborarli.
Chiedo a chi ha già avuto un problema simile come si può risolvere.
Se non sonon stato chiaro, chiedete pure.