
TCP/IP 通信を用いてコンピュータ同士のソケット通信はできますか?
13 views (last 30 days)
Show older comments
MathWorks Support Team
on 15 Apr 2011
Edited: MathWorks Support Team
on 24 Feb 2023
Instrument Control Toolbox の TCP/IP 通信を用いてコンピュータ同士のソケット通信を行う方法を教えてください。
Accepted Answer
MathWorks Support Team
on 24 Feb 2023
Edited: MathWorks Support Team
on 24 Feb 2023
■ R2021a およびそれ以降
Instrument Control Toolbox により提供される以下の関数で可能です。
クライアント側: tcpclient (MATLAB 本体が提供)
サーバー側: tcpserver (Instrument Control Toolbox が提供)
サーバー側サンプル
>> server = tcpserver("localhost",4000);
>> read(server,5,"string")
ans =
"hello"
>> read(server,5,"string")
ans =
"world"
クライアント側サンプル
>> client = tcpclient("localhost",4000);
>> write(client,"helloworld","string")
■ R2011a - R2020b
Instrument Control Toolbox により提供される tcpip 関数で可能です。'NetworkRole' プロパティを使用します。
サーバー側サンプル
t=tcpip('0.0.0.0', 30000, 'NetworkRole', 'server');
fopen(t);
data=fread(t, t.BytesAvailable / 8, 'double');
plot(data);
クライアント側サンプル
data=sin(1:64);
plot(data);
t=tcpip('localhost', 30000, 'NetworkRole', 'client');
fopen(t)
fwrite(t, data, 'double')
■R2010b 以前のバージョンをご利用の場合は、下記をご参照ください。
ソケット通信はサーバ/クライアントの関係があり、サーバに対してクライアントから接続を行い、通信が確立します。
Instrument Control Toolboxは、一般的な計測器(多くの場合サーバー)と接続するために設計されているため、クライアントとなる機能のみが提供されています。
このため、サーバとして動作しているアプリケーションソフトウェアとはソケット通信を確立できますが、MATLAB同士では確立することができません。

0 Comments
More Answers (0)
See Also
Categories
Find more on TCP/IP 通信 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!