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

지정된 웹 주소나 '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 파라미터는 읽기 및 쓰기 작업을 완료할 때까지 걸리는 대기 시간(단위: 초)을 지정합니다. 디폴트 값은 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 파라미터는 지정된 원격 호스트로의 연결 요청이 성공하거나 실패할 때까지 걸리는 최대 대기 시간(단위: 초)을 지정합니다. 값은 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)이 도착하면 수집한 세그먼트를 단일 패킷으로 전송합니다. 전송 지연을 비활성화하면 클라이언트가 데이터를 네트워크로 즉시 전송합니다. 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: []

이러한 속성을 구성하는 방법에 대한 자세한 내용은 Properties 항목을 참조하십시오.

configureTerminator 함수와 configureCallback 함수를 사용하여 특정 속성을 구성할 수 있습니다.

참고 항목

관련 항목