Salve a tutti,
devo testare la usb di un device che monta wince. Sul device gira rndis/eem (in pratica espone una eth al pc con cui è collegato il device) in questo modo il pc è come se fosse collegato con un cavo eth ad un'altro pc.
L'applicazione che devo scrivere deve stressare il link (occupando una certa banda della usb/eth) e allo stesso tempo la usb sarà bombardata da campi elettromagnetici per disturbarla.
Durante il test l'applicazione deve riportare (ogni due secondi) un report di come si sta comportando la usb/eth ovvero se il link è utilizzabile o se i disturbi sono tali da rendere il collegamento inutilizzabile viste le ritrasmissioni.
Vista la semplicità nell'utilizzo della eth ho deciso di utilizzare i socket stabilendo un link e inviando while(1) pacchetti tcp (pc->device) che un'altra applicazione sul device mi rispedisce indietro.
Nel mentre un thread/timer sul pc ogni due secondi mi riporta le statistiche tramite una api che riesce a dirmi pacchetti ricevuti/inviati/ritrasmessi per tcp.
esiste anche una api simile per udp e una per ip.
Siccome io non posso testare ora gli effetti dei disturbi elettromagnetici sto cercando di immaginarli, pensando anche ad una caduta della connessione tcp. Questo mi fa pensare al fatto che il socket tcp di c# non ristabilisca da solo la connessione e dalla caduta in poi io non riuscirei più a trasmettere.
Secondo voi è meglio utilizzare udp?
Oppure lasciar perdere i socket e cercare un'altro modo inviando bulk sulla usb. a quel punto però le statistiche diventano quasi impossibili da riperire.
grazie mille
PS se non avete capito qualcosa chiedete pure



