주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

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 실행을 일시 중지합니다.

    변수 datauint8 데이터 10바이트를 할당하십시오.

    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 하나가 uint8 8개 분량에 해당하므로, 총 80바이트를 사용할 수 있습니다.

    클라이언트가 에코 서버에 연결되므로 서버에 쓰는 데이터는 클라이언트로 반환됩니다. 서버에서 10개의 더블을 읽어옵니다. 객체 이름은 항상 첫 번째 인수입니다. 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")

    입력 인수

    모두 축소

    tcpclient 객체로 지정된 TCP/IP 클라이언트입니다.

    예: 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++ 코드를 생성할 수 있습니다.

    GPU 코드 생성
    GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

    버전 내역

    R2014b에 개발됨