我想创建一个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);
答案 0 :(得分:0)
你应该指定以下内容:
set(t, 'OutputBufferSize', 3200);
3200
值是您允许使用tcp发送的数据量。默认为512
。
让我运行它,我将再次发布一个完整的答案。