Main Content

TCP/IP クライアントの作成と設定の構成

MATLAB® TCP/IP クライアント サポートを使用すると、MATLAB からリモート ホストまたはハードウェアに接続してデータの読み取りと書き込みができます。一般的なワークフローは以下のとおりです。

  • サーバーまたはハードウェアに TCP/IP 接続を作成します。

  • 必要に応じて接続を構成します。

  • 読み取りと書き込みの操作を実行します。

  • 接続をクリアして閉じます。

TCP/IP インターフェイスを介して通信するには、まず tcpclient オブジェクトを作成します。

t = tcpclient(address,port);

アドレスは、リモート ホスト名またはリモート IP アドレスのいずれかになります。いずれの場合も、ポートは 1 と 65535 の間の正の整数でなければなりません。

ホスト名を使用したオブジェクトの作成

次に示すホスト アドレスとポート 80 を使用して、TCP/IP オブジェクト t を作成します。

t = tcpclient("www.mathworks.com",80)
t = 
  tcpclient with properties:

              Address: 'www.mathworks.com'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

指定した Web アドレスまたは 'localhost' などのホスト名を使用して接続する場合、IP アドレスには既定で IPv6 形式が使用されます。接続先のサーバーで IPv4 形式が必要な場合、接続は失敗します。IPv4 では、ホスト名ではなく、明示的な IP アドレスを指定することで接続を作成できます。

IP アドレスを使用したオブジェクトの作成

次に示す IP アドレスとポート 80 を使用して、TCP/IP オブジェクト t を作成します。

t = tcpclient("144.212.130.17",80)
t = 
  tcpclient with properties:

              Address: '144.212.130.17'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

Timeout プロパティの設定

オブジェクトを作成し、名前と値のペアの引数を使用して Timeout の値を設定します。Timeout パラメーターは、読み取りおよび書き込み操作を終了するまでの待ち時間 (秒) を指定します。既定値は 10 です。この値は、オブジェクトの作成中またはオブジェクトの作成後に変更できます。

タイムアウトが 20 秒の TCP/IP オブジェクトを作成します。

t = tcpclient("144.212.130.17",80,"Timeout",20)
t = 
  tcpclient with properties:

              Address: '144.212.130.17'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

Timeout プロパティを表示します。

t.Timeout
ans =

    20

出力は、Timeout プロパティの変更を反映しています。

ConnectTimeout プロパティの設定

オブジェクトを作成し、名前と値のペアの引数を使用して ConnectTimeout の値を設定します。ConnectTimeout パラメーターは、指定したリモート ホストへの接続要求が成功または失敗するまで待機する最大時間を秒単位で指定します。値は 1 以上でなければなりません。ConnectTimeout を指定しない場合、既定値の Inf になります。この値は、オブジェクトの作成時にのみ指定できます。

TCP/IP オブジェクトを作成し、ConnectTimeout10 秒に指定します。

t = tcpclient("144.212.130.17",80,"ConnectTimeout",10)
t = 
  tcpclient with properties:

              Address: '144.212.130.17'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

ConnectTimeout プロパティを表示します。

t.ConnectTimeout
ans =

    10

出力には ConnectTimeout プロパティの変更が反映されます。

メモ

無効なアドレスやポートを指定した場合、あるいはサーバーへの接続が確立できない場合、オブジェクトは作成されません。

転送遅延プロパティの設定

オブジェクトを作成し、名前と値のペアの引数を使用して EnableTransferDelay の値を設定します。EnableTransferDelay パラメーターは Nagle アルゴリズムがオンとオフのどちらであるかを指定します。転送遅延が有効になっている場合、クライアントは未処理データの小さいセグメントを収集し、サーバーから肯定応答 (ACK) が到着すると 1 つのパケットでそれらを送信します。転送遅延が無効になっている場合、クライアントは即座にデータをネットワークに送信します。EnableTransferDelay を指定しない場合、既定で true になります。この値は、オブジェクトの作成時にのみ指定できます。

転送遅延が無効に設定された TCP/IP オブジェクトを作成します。

t = tcpclient("144.212.130.17",80,"EnableTransferDelay",false)
t = 
  tcpclient with properties:

              Address: '144.212.130.17'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

EnableTransferDelay プロパティを表示します。

t.EnableTransferDelay
ans =

  logical

   0

出力は、EnableTransferDelay プロパティの変更を反映しています。

TCP/IP オブジェクト プロパティの表示

tcpclient オブジェクトの作成後、各プロパティとその値の完全なリストを表示できます。tcpclient の出力の properties をクリックします。

t = tcpclient("www.mathworks.com",80)
t = 
  tcpclient with properties:

              Address: 'www.mathworks.com'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

                   Address: 'www.mathworks.com'
                      Port: 80
         NumBytesAvailable: 0

            ConnectTimeout: Inf
                   Timeout: 10
                 ByteOrder: "little-endian"
                Terminator: "LF"

     BytesAvailableFcnMode: "off"
    BytesAvailableFcnCount: 64
         BytesAvailableFcn: []
           NumBytesWritten: 0

       EnableTransferDelay: 1
          ErrorOccurredFcn: []
                  UserData: []

これらのプロパティの設定方法の詳細については、プロパティを参照してください。

特定のプロパティを設定するには、関数 configureTerminatorconfigureCallback を使用できます。

参考

関連するトピック