2010-09-02 9 views
0

je dois mettre en place un lecteur UDP dans Matlab qui reçoit des données à partir d'un certain nombre de sources. J'utilise généralement ce pour une seule source de données:Recevoir les données UDP provenant de sources multiples dans Matlab

[packet,~,~,senderaddress]=fread(s,s.BytesAvailable) 

Les problèmes que je veux éviter d'attendre le délai d'attente, je ne dispose pas de données terminé d'arriver, et les paquets sont de tailles inconnues. Quelqu'un d'autre a-t-il eu ce problème? Merci

Répondre

0

Pourquoi ne pas utiliser les capacités réseau de Java. UDP File Exchange fait des scripts Java pour accéder à un socket UDP. Définissez la taille maximale de vos paquets (les datagrammes UDP peuvent mesurer jusqu'à 65536 octets) et le délai d'attente préféré.

+0

J'ai essayé l'approche Java avant, et la question n'est pas à ouvrir la connexion ou l'acceptation de paquets. Le problème est de régler le délai d'attente pour un débit maximum. Avec seulement une seule unité distante envoyant des paquets à intervalles fixes, ce n'est pas un problème du tout. Avec la configuration actuelle, j'ai plusieurs unités distantes envoyant à des intervalles non-fixes. Malheureusement, les paquets n'ont pas de terminaison non plus, donc je ne peux pas utiliser fgetl ou même fgets. J'ai installé la nouvelle version Matlab R2010b et je ne semble pas avoir de problèmes avec l'utilisation de s.BytesAvailable. Nous verrons bien. Merci! – Jeff

+0

Je ne comprends pas ce que vous voulez dire par terminaison de paquet. À ma compréhension toute trame UDP (paquet) a une longueur donnée, qui est indiquée dans l'en-tête de trame. – zellus

Questions connexes