주요 콘텐츠

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

코드를 tcpclient 인터페이스로 전환하기

tcpip 함수와 그 객체 함수 및 속성은 제거될 예정입니다. 대신 tcpclient 인터페이스를 사용하십시오.

제거되는 기능

LocalHost 속성, LocalPort 속성 및 LocalPortMode 속성은 제거될 예정입니다.

ValuesReceived 속성 및 ValuesSent 속성은 제거될 예정입니다. NumBytesAvailable 속성과 사용할 수 있는 데이터의 데이터형을 사용하여 전송된 값의 개수를 계산할 수 있습니다. 예를 들어, NumBytesAvailable이 20바이트의 uint32 데이터라면 각 uint32 값이 4바이트이므로 전송된 값의 개수는 5입니다.

readasync 함수와 stopasync 함수, ReadAsyncMode 속성과 TransferStatus 속성은 제거될 예정입니다. 업데이트된 인터페이스가 비동기식으로 데이터를 읽어옵니다.

BytesToOutput 속성, InputBufferSize 속성 및 OutputBufferSize 속성은 제거될 예정입니다. 버퍼 크기는 자동으로 관리되며 필요에 따라 크기가 조정됩니다.

OutputEmptyFcn 속성은 제거될 예정입니다. 업데이트된 인터페이스에서는 configureCallback를 사용하여 콜백 함수를 설정할 수 있지만, 이 속성에 대해서는 설정할 수 없습니다.

RecordDetail 속성, RecordMode 속성, RecordName 속성 및 RecordStatus 속성은 제거될 예정입니다.

TimerFcn 속성 및 TimerPeriod 속성은 제거될 예정입니다. timer를 대신 사용하십시오.

Name 속성, Type 속성, ObjectVisibility 속성 및 Status 속성은 제거될 예정입니다.

TCP/IP 클라이언트 생성

이 예제에서는 권장 기능을 사용하여 TCP/IP 클라이언트를 만드는 방법을 보여줍니다.

기능대체 기능
t = tcpip("localhost",3030);
fopen(t)
t = tcpclient("localhost",3030);
t.ByteOrder = "big-endian";
t = tcpip("127.0.0.1",3030,"NetworkRole","client");
fopen(t)
t = tcpclient("127.0.0.1",3030);
t.ByteOrder = "big-endian";

참고

ByteOrder의 기본값은 tcpip 객체의 경우 bigEndian이고, tcpclient 객체의 경우 little-endian이므로, 속성 값을 일치시키려면 점 표기법을 사용하여 설정해야 합니다.

fopen 함수는 업데이트된 인터페이스에서 사용할 수 없습니다. 객체 생성 함수 tcpclient는 객체를 생성하고 연결합니다.

자세한 내용은 tcpclient 항목을 참조하십시오.

기존 TCP/IP 클라이언트 연결 찾기

instrfindinstrfindall은 제거될 예정입니다. tcpclientfind를 대신 사용하십시오. (R2024a 이후)

쓰기와 읽기

이러한 예제에서는 에코 서버를 사용하여 권장 기능을 사용하여 이진 쓰기 및 읽기를 수행하는 방법과 종결되지 않은 문자열 데이터를 쓰고 읽는 방법을 보여줍니다.

기능대체 기능
echotcpip("on",3030)

% t is a tcpip object
fwrite(t,1:5);
data = fread(t,5)
data =

     1
     2
     3
     4
     5
echotcpip("on",3030)

% t is a tcpclient object
write(t,1:5,"uint8")
data = read(t,5)
data =

  1×5 uint8 row vector

   1   2   3   4   5
data = double(data)
data =

     1     2     3     4     5
echotcpip("on",3030)

% t is a tcpip object
fwrite(t,"hello","char")
length = 5;
data = fread(t,length,"char")
data =

   104
   101
   108
   108
   111
data = char(data)'
data =

    'hello'
echotcpip("on",3030)

% t is a tcpclient object
write(t,"hello","string");
length = 5;
data = read(t,length,"string")
data =

    "hello"

자세한 내용은 write 또는 read 항목을 참조하십시오.

종결된 문자열 읽기

이러한 예제에서는 권장 기능을 사용하여 종결된 문자열 데이터를 쓰고 읽는 방법을 보여줍니다.

기능대체 기능
echotcpip("on",3030)

% t is a tcpip object
t.Terminator = "CR";
fprintf(t,"hello")
data = fscanf(t)
data =

    'hello
     '
echotcpip("on",3030)

% t is a tcpclient object
configureTerminator(t,"CR");
writeline(t,"hello");
data = readline(t)
a = 

    "hello"
echotcpip("on",3030)

% t is a tcpip object
t.Terminator = "CR";
fprintf(t,"hello")
data = fgetl(t)
data =

    'hello'

fgetl은 지정된 종결자에 도달할 때까지 읽은 다음, 그 종결자를 무시합니다.

echotcpip("on",3030)

% t is a tcpip object
t.Terminator = "CR";
fprintf(t,"hello")
data = fgets(t)
data =

    'hello
     '

fgets는 지정된 종결자에 도달할 때까지 읽은 다음, 그 종결자를 반환합니다.

자세한 내용은 writeline 또는 readline 항목을 참조하십시오.

문자열 데이터 읽기 및 구문 분석

이 예제에서는 권장 기능을 사용하여 문자열 데이터를 읽고 구문 분석하는 방법을 보여줍니다.

기능대체 기능
% t is a tcpip object
data = scanstr(t,';')
data =

  3×1 cell array

    {'a'}
    {'b'}
    {'c'}
% t is a tcpclient object
data = readline(t)
data = 

    "a;b;c"
data = strsplit(data,";")
data = 

  1×3 string array

    "a"    "b"    "c"

자세한 내용은 readline 항목을 참조하십시오.

데이터 쓰기 및 다시 읽기

이 예제에서는 권장 기능을 사용하여 ASCII로 끝나는 데이터를 쓰고 ASCII로 끝나는 데이터를 다시 읽는 방법을 보여줍니다.

기능대체 기능
% t is a tcpip object
data = query(t,'ctrlcmd')
data =

    'success'
% t is a tcpclient object
data = writeread(t,"ctrlcmd")
data = 

    "success"

자세한 내용은 writeread 항목을 참조하십시오.

이진 블록 프로토콜을 사용한 데이터 쓰기 및 읽기

이 예제에서는 권장 기능을 사용하여 IEEE 표준 이진 블록 프로토콜로 데이터를 쓰는 방법을 보여줍니다.

기능대체 기능
% t is a tcpip object
binblockwrite(t,1:5);
data = binblockread(t)
data =

     1
     2
     3
     4
     5
% t is a tcpclient object
writebinblock(t,1:5,"uint8");
data = readbinblock(t)
data =

     1     2     3     4     5

자세한 내용은 writebinblock 또는 readbinblock 항목을 참조하십시오.

메모리에서 데이터 플러시하기

다음 예제에서는 권장 기능을 사용하여 버퍼에서 데이터를 플러시하는 방법을 보여줍니다.

기능대체 기능
% t is a tcpip object
flushinput(t)
% t is a tcpclient object
flush(t,"input")
% t is a tcpip object
flushoutput(t)
% t is a tcpclient object
flush(t,"output")
% t is a tcpip object
flushinput(t)
flushoutput(t)
% t is a tcpclient object
flush(t)

자세한 내용은 flush 항목을 참조하십시오.

종결자 설정하기

이러한 예제에서는 권장 기능을 사용하여 종결자를 설정하는 방법을 보여줍니다.

기능대체 기능
% t is a tcpip object
t.Terminator = "CR/LF";
% t is a tcpclient object
configureTerminator(t,"CR/LF")
% t is a tcpip object
t.Terminator = {"CR/LF" [10]};
% t is a tcpclient object
configureTerminator(t,"CR/LF",10)

자세한 내용은 configureTerminator를 참조하십시오.

콜백 함수 설정

이 예제에서는 권장 기능을 사용하여 콜백 함수를 설정하는 방법을 보여줍니다.

기능대체 기능
% t is a tcpip object
t.BytesAvailableFcnCount = 5
t.BytesAvailableFcnMode = "byte"
t.BytesAvailableFcn = @mycallback

function mycallback(src,evt)
   data = fread(src,src.BytesAvailableFcnCount);
   disp(evt)
   disp(evt.Data)
end
    Type: 'BytesAvailable'
    Data: [1×1 struct]

    AbsTime: [2019 12 21 16 35 9.7032]
% t is a tcpclient object
configureCallback(t,"byte",5,@mycallback);

function mycallback(src,evt)
   data = read(src,src.BytesAvailableFcnCount);
   disp(evt)
end
  ByteAvailableInfo with properties:

    BytesAvailableFcnCount: 5
                   AbsTime: 21-Dec-2019 12:23:01
% t is a tcpip object
t.Terminator = "CR"
t.BytesAvailableFcnMode = "terminator"
t.BytesAvailableFcn = @mycallback

function mycallback(src,evt)
   data = fscanf(src);
   disp(evt)
   disp(evt.Data)
end
    Type: 'BytesAvailable'
    Data: [1×1 struct]

    AbsTime: [2019 12 21 16 35 9.7032]
% t is a tcpclient object
configureTerminator(t,"CR")
configureCallback(t,"terminator",@mycallback);

function mycallback(src,evt)
   data = readline(src);
   disp(evt)
end
  TerminatorAvailableInfo with properties:

                   AbsTime: 21-Dec-2019 12:23:01

자세한 내용은 configureCallback 항목을 참조하십시오.

TCP/IP 클라이언트 연결 끊기

fclose 함수는 업데이트된 인터페이스에서 사용할 수 없습니다. TCP/IP 클라이언트 연결을 끊으려면 단일 작업 공간이나 여러 작업 공간에서 작업하는지에 따라 clear 또는 delete를 대신 사용하십시오. 자세한 내용은 tcpclient 함수 도움말 페이지의 다음 예제를 참조하십시오.

참고 항목