2011-06-02 3 views
1

J'ai une application dans vb.net qui va se connecter avec un périphérique matériel et tester ses fonctionnalités. Le périphérique matériel recrache essentiellement des données continuellement via Ethernet. C'est-à-dire qu'il reçoit certaines données via les ports COM et crache les données traitées via Ethernet.travail des sockets tcpclient dans vb.net

Donc, mon application fait les deux. C'est à peu près toute l'application.

Mon problème est que j'utilise tcpclient sockets. Maintenant, quand je connecte un tcpclient à l'appareil en utilisant

tcpclient.open(ip,port); 

immédiatement l'appareil envoie des données qui vient et sont stockés dans le ClientSocket. Puis j'envoyer une commande à elle, alors seulement je lis les données du ClientSocket en utilisant

tcpclient.getstream().read() 

à ce moment l'ensemble des données qui est celui qui a coulé immédiatement lorsqu'il est connecté au dispositif et celui que je réellement besoin après avoir passé la commande est à la fois acquise. Ceci est indésirable. J'ai besoin des données que je lis seulement après avoir envoyé la commande.

Alors je me demandais s'il y avait un moyen d'effacer le socket tcpclient avant de faire une lecture. Le manuel ne montre pas une telle méthode.

Toute aide sur ce serait utile pour moi.

Répondre

0

Vous devez lire le flux avant d'envoyer la commande pour lire les trucs que vous n'êtes pas intéressé par.

+0

grâce trouvé après que j'ai posté la question – swordfish