TCP/IP 通信を用いてコンピュ​ータ同士のソケット通​信はできますか?

13 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 15 Apr 2011
Instrument Control Toolbox の TCP/IP 通信を用いてコンピュータ同士のソケット通信を行う方法を教えてください。

Accepted Answer

MathWorks Support Team
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同士では確立することができません。

More Answers (0)

Products


Release

R13SP1

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!