使用套接字在Matlab和C之间进行通信

时间:2013-12-09 10:35:29

标签: c matlab sockets

我在Matlab和C之间的通信方面遇到了问题。我使用client.c在C中创建了一个客户端,在Matlab中使用TCP / IP创建了一个服务器:

t=tcpip('0.0.0.0', 30000, 'NetworkRole', 'server');
fopen(t);
data=fread(t, t.BytesAvailable);

但是服务器收到一个空缓冲区,并在fread:

给出错误
Error using icinterface/fread (line 163)
SIZE must be greater than 0.

-------------------------------------------- -------------------------------------------

编辑:C中的服务器客户端运行良好。问题出在Matlab TCP / IP对象中,我在Matlab中尝试了server-client并给出了同样的错误。

在一个Matlab端(客户端或服务器),它无法扫描书面文本。其中,以下代码

fprintf(t,'Hi')
text = fscanf(t)

结果:        警告:读取失败:在超时之前发生超时         达成了终结者。 并打印一个空文本。

请帮忙! 感谢。

1 个答案:

答案 0 :(得分:0)

通过在打开连接和写入t之间在客户端中添加暂停来解决。

所以Matlab客户端如下:

t=tcpip('localhost', 4000, 'NetworkRole', 'client');
fopen(t);
pause(1);
fprintf(t,'Hi');