Main Content

read

TCP/IP を介したリモート ホストからのデータの読み取り

    説明

    data = read(t) は、読み取り可能なすべての数値または ASCII データを TCP/IP クライアント t で指定されたリモート ホストから読み取り、データを double の行ベクトルまたは列ベクトル、またはテキストとして返します。読み取られる値の数は tNumBytesAvailable プロパティで指定されます。この関数は、指定された数の値が読み取られるかタイムアウトが発生するまで、MATLAB® の実行を一時停止します。

    data = read(t,count) は、count の値の数を読み取り、データを返します。

    data = read(t,count,datatype) は、datatype で指定された形式で count の値の数を読み取り、データを返します。datatype 引数は標準の MATLAB データ型の文字ベクトルです。

    すべて折りたたむ

    t という TCP/IP クライアント接続を作成します。TCP/IP エコー サーバーにポート 4000 で接続します。そのためには、echotcpip サーバーをポート 4000 で実行していなければなりません。

    echotcpip("on",4000)
    t = tcpclient("localhost",4000)
    t = 
      tcpclient with properties:
    
                  Address: 'localhost'
                     Port: 4000
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    関数 write は、t に接続されたリモート ホストにデータを同期的に書き込みます。まずデータを指定し、次にデータを書き込みます。指定された数の値がリモート ホストに書き込まれるまで、MATLAB の実行は一時停止されます。

    10 バイトの uint8 データを変数 data に割り当てます。

    data = uint8(1:10)
    data = 1×10 uint8 row vector
    
        1    2    3    4    5    6    7    8    9   10
    
    

    データを表示します。

    whos data
      Name      Size            Bytes  Class    Attributes
    
      data      1x10               10  uint8              
    

    エコー サーバーにデータを書き込みます。

    write(t,data)

    NumBytesAvailable プロパティを表示して、書き込み操作が正常に行われたことを確認します。

    t.NumBytesAvailable
    ans = 10
    

    クライアントはエコー サーバーに接続しているため、サーバーに書き込むデータはクライアントに返されます。読み取り可能なすべてのバイトを読み取ります。

    read(t)
    ans = 1×10 uint8 row vector
    
        1    2    3    4    5    6    7    8    9   10
    
    

    関数 read を引数なしで使用すると、リモート ホストに接続している t から読み取り可能なすべてのバイトが読み取られ、そのデータが返されます。読み取られる値の数は NumBytesAvailable プロパティで決まり、入力バッファーで利用可能なバイト数となります。

    オブジェクトをクリアして、TCP/IP クライアントとリモート ホストの接続を閉じます。echotcpip サーバーをオフにします。

    clear t
    echotcpip("off")

    t という TCP/IP クライアント接続を作成します。TCP/IP エコー サーバーにポート 4000 で接続します。そのためには、echotcpip サーバーをポート 4000 で実行していなければなりません。

    echotcpip("on",4000)
    t = tcpclient("localhost",4000)
    t = 
      tcpclient with properties:
    
                  Address: 'localhost'
                     Port: 4000
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    関数 write は、t に接続されたリモート ホストにデータを同期的に書き込みます。まずデータを指定し、次にデータを書き込みます。この関数は、指定された数の値がリモート ホストに書き込まれるまで待機します。

    10 バイトのデータを変数 data に代入します。

    data = (1:10)
    data = 1×10
    
         1     2     3     4     5     6     7     8     9    10
    
    

    データを表示します。

    whos data
      Name      Size            Bytes  Class     Attributes
    
      data      1x10               80  double              
    

    エコー サーバーにデータを書き込みます。

    write(t,data)

    NumBytesAvailable プロパティを表示して、書き込み操作が正常に行われたことを確認します。

    t.NumBytesAvailable
    ans = 80
    

    読み込みまたは書き込み操作では、データ転送のためにデータ型が uint8 に変換されます。転送後、データ型は指定された datatype に戻ります。1 つの double は 8 個の uint8 バイトと同じであり、80 バイトを利用できます。

    クライアントはエコー サーバーに接続しているため、サーバーに書き込むデータはクライアントに返されます。サーバーから 10 個の倍精度値を読み取ります。最初の引数には必ずオブジェクト名を指定します。size は 2 番目の引数、datatype は 3 番目の引数として指定しなければなりません。

    read(t,10,"double")
    ans = 1×10
    
         1     2     3     4     5     6     7     8     9    10
    
    

    オブジェクトをクリアして、TCP/IP クライアントとリモート ホストの接続を閉じます。echotcpip サーバーをオフにします。

    clear t
    echotcpip("off")

    入力引数

    すべて折りたたむ

    TCP/IP クライアント。tcpclient オブジェクトとして指定します。

    例: read(t) は、TCP/IP クライアント t から読み取り可能なすべてのデータを読み取ります。

    読み取る値の数。正の整数値として指定されます。counttNumBytesAvailable プロパティより大きい場合、関数は MATLAB の実行を一時停止し、指定された量のデータが読み取られるかタイムアウトが発生するまで待機します。

    例: read(t,5) は、uint8 データの 5 つの値を読み取ります。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    各値のサイズと形式。文字ベクトルまたは string として指定します。datatype は、各値について読み取るバイト数と、MATLAB データ型としてのそれらのバイトの解釈を決定します。

    例: read(t,10,"double") は、double データの 10 個の値を読み取ります。

    データ型: char | string

    拡張機能

    C/C++ コード生成
    MATLAB® Coder™ を使用して C および C++ コードを生成します。

    バージョン履歴

    R2014b で導入