Main Content

read

TCP/IP를 통해 원격 호스트에서 데이터 읽어 들이기

    설명

    예제

    data = read(t)는 TCP/IP 클라이언트 t에 의해 지정된 원격 호스트에서 사용 가능한 모든 숫자형 또는 ASCII 데이터를 읽고 데이터를 double형 또는 텍스트로 구성된 행 벡터 또는 열 벡터로 반환합니다. 읽은 값의 개수는 tNumBytesAvailable 속성으로 지정됩니다. 함수는 지정된 개수의 값을 읽어 들였거나 제한 시간이 초과될 때까지 MATLAB® 실행을 일시 중단합니다.

    data = read(t,count)count개의 값을 읽고 데이터를 반환합니다.

    예제

    data = read(t,count,datatype)datatype으로 지정된 형식으로 count개의 값을 읽고 데이터를 반환합니다. datatype 인수는 표준 MATLAB 데이터형으로 구성된 문자형 벡터입니다.

    예제

    모두 축소

    t라는 TCP/IP 클라이언트 연결을 만들고 포트 4000으로 TCP/IP 에코 서버에 연결합니다. 이렇게 하려면 포트 4000에서 실행 중인 echotcpip 서버가 있어야 합니다.

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

    write 함수는 t에 연결된 원격 호스트에 동기식으로 데이터를 씁니다. 먼저 데이터를 지정한 다음 데이터를 씁니다. 함수는 지정된 개수의 값을 원격 호스트에 쓸 때까지 MATLAB 실행을 일시 중단합니다.

    변수 data에 10바이트의 uint8 데이터를 할당합니다.

    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 클라이언트 연결을 만들고 포트 4000으로 TCP/IP 에코 서버에 연결합니다. 이렇게 하려면 포트 4000에서 실행 중인 echotcpip 서버가 있어야 합니다.

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

    write 함수는 t에 연결된 원격 호스트에 동기식으로 데이터를 씁니다. 먼저 데이터를 지정한 다음 데이터를 씁니다. 함수는 값이 지정된 개수만큼 원격 호스트에 쓰여질 때까지 기다립니다.

    변수 data에 10바이트의 데이터를 할당합니다.

    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으로 되돌아갑니다. 하나의 double형은 8개의 uint8형 바이트와 같으므로 80바이트를 사용할 수 있습니다.

    클라이언트는 에코 서버에 연결되어 있어 서버에 쓴 데이터는 클라이언트에게 반환됩니다. 서버에서 10개의 double형 값을 읽어 들입니다. 객체 이름은 항상 첫 번째 인수가 됩니다. size 인수는 두 번째 인수가 되어야 하며 datatype은 세 번째 인수가 되어야 합니다.

    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)는 5개의 uint8 데이터 값을 읽어 들입니다.

    데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    각 값의 크기와 형식으로, 문자형 벡터 또는 string형으로 지정됩니다. datatype은 각 값에 대해 읽어 들일 바이트 수와 해당 바이트에 대한 해석을 MATLAB 데이터형으로 결정합니다.

    예: read(t,10,"double")은 10개의 double형 데이터 값을 읽어 들입니다.

    데이터형: char | string

    확장 기능

    C/C++ 코드 생성
    MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

    버전 내역

    R2014b에 개발됨