首页 > 解决方案 > 使用 Matlab 连接但不接收的 TCPIP 服务器

问题描述

我正在尝试在 matlab 中生成一个 TCPIP 服务器,该服务器应该与用 C++ 编码的 TCPIP 客户端进行通信。直到现在我得到了这个工作:

我的 C++ 客户端应该没问题(这就是为什么我没有给出对于这个问题来说太长的代码),我让它与 Python 中的简单命令一起工作。

在我的 Matlab 服务器中,建立了连接,但 fread 函数似乎没有读取任何内容......但是,数据在 C++ 客户端部分中发送得很好。这是我的 Matlab 代码:

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

我的 C++ 客户端也在“localhost”上,服务器的指定端口是 50000。我想这就是建立联系的原因。我不明白这里发生了什么。我提前感谢您的所有回答。

编辑:我用 echotcpip('on',50000) 进行了测试,它正在工作(但我不需要 echo 功能)。

EDIT2: fwrite(u,somedata) 完美运行......我不明白为什么 fread 不工作。

标签: c++matlabtcpserver

解决方案


也许为时已晚:您不仅需要在“localhost”(即只有 127.0.0.1)上收听服务器的任何 IP 地址。你应该写u=tcpip('0.0.0.0', 50000, 'NetworkRole', 'server');


推荐阅读