Instrument control ツールボックスを使用して、あるマシンから別のマシンへのサーバーとクライアントの両方の接続を確立するプログラムを実行しているため、多かれ少なかれピアツーピア接続のように動作します。
コードは、2 台の別々のマシンで初めて実行すると正常に実行されますが、2 回目の試行では実行されないか、Matlab を開いたままにして後で実行しようとすると実行されません。私が得るのは、サーバーを見つけようとする1つのプログラムと、他のプログラムがサーバー接続を開いていることだけですが、お互いを見つけることはありません.
接続を開くためのコード (クライアント コードは非常に似ています):
function connectionServer = openRecieve(client, port)
t = tcpip(client, port, 'NetworkRole', 'Server');
set(t, 'InputBufferSize', 3000000);
% Open connection to the client.
fopen(t);
fprintf('%s \n','Client Connected');
connectionServer = t;
set(connectionServer,'Timeout',.1);
end
接続を閉じるためのコード:
function closeConnection(connection)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
fclose(connection);
delete(connection);
clear connection;
end
初めて接続して実行するのに問題がないため、タイムアウトとは何の関係もないと思います。
私も追加しました:
clc
clear all
プログラムの最後と最初に、2回目または3回目の実行で接続に失敗することがあります。
どんな考えでも大歓迎です