Serveur TCPIP utilisant Matlab se connectant mais ne recevant pas

J’essaie de générer un serveur TCPIP dans matlab qui est censé communiquer avec un client TCPIP codé en C ++. Jusqu’à présent, j’ai eu ce travail:

  • Serveur C ++ et client Matlab (UDP et TCPIP)
  • Client C ++ et serveur Matlab (UDP uniquement)

Mon client C ++ devrait être OK (c’est pourquoi je ne donne pas le code qui est trop long pour cette question), je l’ai fait fonctionner avec les commandes simples en Python.

Dans mon serveur Matlab, la connexion est établie mais la fonction fread ne semble rien lire … Cependant, les données sont bien envoyées dans la partie client C ++. Voici mon code Matlab:

u=tcpip('localhost', 50000, 'NetworkRole', 'server'); fopen(u); %[data,count]=fread(u,6*8,'uint8'); %this doesn't work either data=fread(u); 

Mon client C ++ est également sur “localhost” et le port spécifié est 50000 pour le serveur. Je suppose que c’est la raison pour laquelle la connexion est établie. Je ne comprends pas ce qui se passe ici. Je vous remercie d’avance pour toutes vos réponses.

EDIT: J’ai testé avec echotcpip (‘on’, 50000) et ça marche (mais je n’ai pas besoin de fonction écho au passage).

EDIT2: fwrite (u, somedata) fonctionne parfaitement … Je ne comprends pas pourquoi fread ne fonctionne pas.

Peut-être trop tard: vous devez écouter les adresses IP du serveur, pas seulement sur “localhost” (c’est-à-dire uniquement 127.0.0.1). Vous devriez écrire u = tcpip (‘0.0.0.0’, 50000, ‘NetworkRole’, ‘server’);