MATLAB在网络上发送图像矩阵

时间:2015-02-18 16:56:43

标签: matlab session image-processing network-programming

我想创建一个TCP / IP会话,我在服务器会话和客户端会话之间发送图像矩阵。

我的服务器会话的代码:

A = imread('cameraman.jpg');
[r, c]=size(A);
B = reshape(A,1,[]);%2d to 1d;
t = tcpip('0.0.0.0', 30000, 'NetworkRole', 'server');
fopen(t);
fwrite(t, B);

我的客户会话的代码:

t = tcpip('localhost', 30000, 'NetworkRole', 'client');
fopen(t);
data = fread(t, t.BytesAvailable);
C=reshape(data,r,c)%1d to 2d;
imshow(C);

我打开了两个MATLAB Windows,然后运行它们,首先是服务器。

问题是服务器程序一直运行而没有连接到客户端:

>> tcpserver
Error using icinterface/fwrite (line 193)
The number of bytes written must be less than or equal to OutputBufferSize-BytesToOutput.

Error in tcpserver (line 6)
fwrite(t, B);

客户端程序发出错误:

>> tcpclient
Error using icinterface/fread (line 163)
SIZE must be greater than 0.

Error in tcpclient (line 3)
data = fread(t, t.BytesAvailable);

1 个答案:

答案 0 :(得分:0)

你应该指定以下内容:

set(t, 'OutputBufferSize', 3200);

3200值是您允许使用tcp发送的数据量。默认为512

让我运行它,我将再次发布一个完整的答案。