주요 콘텐츠

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

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

udp 함수와 그 객체 함수 및 속성은 제거될 예정입니다. udpport를 대신 사용하십시오.

udp 인터페이스udpport 인터페이스
udp, DatagramTerminateMode, 그리고 fopenudpportUDP 소켓에 연결
instrfindinstrfindalludpportfind기존 UDP 소켓 연결 찾기
fwritewrite읽고 쓰기
freadread
fprintfwriteline종결된 문자열 읽기
데이터 쓰기 및 다시 읽기
fscanfreadline종결된 문자열 읽기
fgetl문자열 데이터 읽기 및 구문 분석
fgets데이터 쓰기 및 다시 읽기
flushinputflushoutputflush메모리에서 데이터 플러시하기
TerminatorconfigureTerminator종결자 설정하기
BytesAvailableFcnCount, BytesAvailableFcnMode, 그리고 BytesAvailableFcnconfigureCallback콜백 함수 설정
DatagramReceivedFcn
BytesAvailableNumBytesAvailable 
OutputDatagramPacketSizeOutputDatagramSize 
ErrorFcnErrorOccurredFcn 
fclosecleardeleteUDP 소켓 연결 끊기

제거되는 기능

binblockreadbinblockwrite 함수는 제거될 예정입니다.

DatagramAddressDatagramPort 속성은 업데이트된 인터페이스의 read 함수에서 반환된 Datagram 구조체의 SenderAddressSenderPort 속성입니다.

RemoteHostRemotePort 속성은 업데이트된 인터페이스의 writewriteline 함수에 대한 입력 인수입니다. LocalPortMode 속성은 업데이트된 인터페이스의 LocalPort 속성의 일부입니다.

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

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

BytesToOutput 속성, InputBufferSize 속성, OutputBufferSize 속성 및 InputDatagramPacketSize 속성은 제거될 예정입니다. 버퍼 크기와 수신된 데이터그램 크기는 자동으로 관리되며 필요에 따라 크기가 조정됩니다.

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

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

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

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

UDP 소켓에 연결

이 예제에서는 권장 기능을 사용하여 UDP 소켓에 연결하는 방법을 보여줍니다.

기능대체 기능
u = udp;
u.DatagramTerminateMode = "off";
fopen(u)
uByte = udpport("byte");
u = udp;
u.DatagramTerminateMode = "on";
fopen(u)
uDatagram = udpport("datagram");

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

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

기존 UDP 소켓 연결 찾기

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

읽고 쓰기

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

기능대체 기능
echoudp("on",9090)

% u is a udp object
u.DatagramTerminateMode = "off";
fwrite(u,1:5);
data = fread(u,5)
data =

     1
     2
     3
     4
     5
echoudp("on",9090)

% uByte is a udpport byte object
write(uByte,1:5,"127.0.0.1",9090)
data = read(uByte,5)
data =

     1     2     3     4     5
echoudp("on",9090)

% u is a udp object
u.DatagramTerminateMode = "on";
fwrite(u,1:5);
data = fread(u,1)
data =

     1
     2
     3
     4
     5
echoudp("on",9090)

% uDatagram is a udpport datagram object
write(uDatagram,1:5)
data = read(uDatagram,1)
data = 

  Datagram with properties:

             Data: [1 2 3 4 5]
    SenderAddress: "127.0.0.1"
       SenderPort: 9090
echoudp("on",9090)

% u is a udp object
fwrite(u,"hello","char")
length = 1;
data = fread(u,length,"char")
data =

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

    'hello'
echoudp("on",9090)

% uByte is a udpport byte object
write(uByte,"hello","string","localhost",9090);
length = 5;
data = read(uByte,length,"string")
data =

    "hello"
echoudp("on",9090)

% uDatagram is a udpport datagram object
write(uDatagram,"hello","string","localhost",9090);
length = 1;
data = read(uDatagram,length,"string")
data = 

  Datagram with properties:

             Data: "hello"
    SenderAddress: "127.0.0.1"
       SenderPort: 9090

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

종결된 문자열 읽기

이 예제에서는 권장 기능을 사용하여 종결된 문자열 쓰기 및 읽기를 수행하는 방법을 보여줍니다.

기능대체 기능
echoudp("on",9090)

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

    'hello
     '
echoudp("on",9090)

% uByte is a udpport byte object
configureTerminator(uByte,"CR");
writeline(uByte,"hello","127.0.0.1",9090);
data = readline(uByte)
a = 

    "hello"
echoudp("on",9090)

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

    'hello'

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

echoudp("on",9090)

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

    'hello
     '

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

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

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

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

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

  3×1 cell array

    {'a'}
    {'b'}
    {'c'}
% uByte is a udpport byte object
data = readline(uByte)
data = 

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

  1×3 string array

    "a"    "b"    "c"

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

데이터 쓰기 및 다시 읽기

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

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

    'success'
% uByte is a udpport byte object
writeline(uByte,"ctrlcmd")
data = readline(uByte)
data = 

    "success"

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

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

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

기능대체 기능
% u is a udp object
flushinput(u)
% u is a udpport byte or datagram object
flush(u,"input")
% u is a udp object
flushoutput(u)
% u is a udpport byte or datagram object
flush(u,"output")
% u is a udp object
flushinput(u)
flushoutput(u)
% u is a udpport byte or datagram object
flush(u)

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

종결자 설정하기

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

기능대체 기능
% u is a udp object
u.Terminator = "CR/LF";
% u is a udpport byte or datagram object
configureTerminator(u,"CR/LF")
% u is a udp object
u.Terminator = {"CR/LF" [10]};
% u is a udpport byte or datagram object
configureTerminator(u,"CR/LF",10)

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

콜백 함수 설정

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

기능대체 기능
% u is a udp object
u.BytesAvailableFcnCount = 5;
u.BytesAvailableFcnMode = "byte";
u.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]
% uByte is a udpport byte object
configureCallback(uByte,"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
% u is a udp object
u.DatagramTerminateMode = "on";
u.DatagramReceivedFcn = @mycallback;

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

            AbsTime: [2019 12 21 16 35 9.7032]
    DatagramAddress: '127.0.0.1'
       DatagramPort: 9090
     DatagramLength: 1
% uDatagram is a udpport datagram object
configureCallback(uDatagram,"datagram",1,@mycallback);

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

    DatagramsAvailableFcnCount: 1
                       AbsTime: 21-Dec-2019 12:23:01
% u is a udp object
u.Terminator = "CR";
u.BytesAvailableFcnMode = "terminator";
u.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]
% uByte is a udpport byte object
configureCallback(uByte,"terminator",@mycallback);

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

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

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

UDP 소켓 연결 끊기

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

참고 항목