Originariamente inviata da
Xaratroom
Se i nodi sono connessi con link full duplex, direttamente allo switch e dopo che la tabella di instradamento è stata popolata.
grazie per le tue risposte.
Entro nel vivo della questione; ho costruito un piccolo simulatore in codice Borland Builder. Quello che fa è lanciare un thread che crea alcuni pacchetti e li invia alla funzione SpedisciDati().
In tale funzione ho implementato una sorta di timer il quale invia effettivamente i dati quando è trascorso 1 secondo=1000 ms.
Studiando le variabili relative al tempo, effettivamente il codice nell'if viene eseguito sempre ogni secondo invece, la dimensione del buffer che io ho chiamat stringa varia da 500000 caratteri a 1500000.
A questo punto mi chiedo se l'uso di un thread porta fuori strada se si desidera capire quanti byte/secondo (utili) si riesce ad inviare in quanto intervengono i ritardi dello scheduler di windows o altro?
Grazie
codice:
// creazione dei pacchetti
DWORD WINAPI ThreadTest( LPVOID lpParameter )
{
char msgbuf[40];
while(!bAbort)
{
for(int i=0; i < 127; i++)
{
sprintf(msgbuf, "B%d_5,1,xxx.xxx.xxx.xxx;", i);
SpedisciDati(msgbuf);
}
}
return 0;
}
//---------------------------------------------------------------------------
// i pacchetti vengono inviati al client trascorso 1 secondo
void SpedisciDati(char *msg)
{
stringa+=msg;
if(GetTickCount() - tempo >= 1000 || tempo == 0)
{
ServerSocket1->Socket->Connections[actconn]->SendText(stringa);
printf("%d",stringa.Length());
stringa="";
tempo=GetTickCount();
}
}
//---------------------------------------------------------------------------