이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
코드를 udpport 인터페이스로 전환하기
udp 함수와 그 객체 함수 및 속성은 제거될 예정입니다. udpport를 대신 사용하십시오.
udp 인터페이스 | udpport 인터페이스 | 예 |
|---|---|---|
udp, DatagramTerminateMode, 그리고 fopen | udpport | UDP 소켓에 연결 |
instrfind 및 instrfindall | udpportfind | 기존 UDP 소켓 연결 찾기 |
fwrite | write | 읽고 쓰기 |
fread | read | |
fprintf | writeline | 종결된 문자열 읽기 |
| 데이터 쓰기 및 다시 읽기 | ||
fscanf | readline | 종결된 문자열 읽기 |
fgetl | 문자열 데이터 읽기 및 구문 분석 | |
fgets | 데이터 쓰기 및 다시 읽기 | |
flushinput 및 flushoutput | flush | 메모리에서 데이터 플러시하기 |
Terminator | configureTerminator | 종결자 설정하기 |
BytesAvailableFcnCount, BytesAvailableFcnMode, 그리고 BytesAvailableFcn | configureCallback | 콜백 함수 설정 |
DatagramReceivedFcn | ||
BytesAvailable | NumBytesAvailable | |
OutputDatagramPacketSize | OutputDatagramSize | |
ErrorFcn | ErrorOccurredFcn | |
fclose | clear 및 delete | UDP 소켓 연결 끊기 |
제거되는 기능
binblockread 및 binblockwrite 함수는 제거될 예정입니다.
DatagramAddress 및 DatagramPort 속성은 업데이트된 인터페이스의 read 함수에서 반환된 Datagram 구조체의 SenderAddress 및 SenderPort 속성입니다.
RemoteHost 및 RemotePort 속성은 업데이트된 인터페이스의 write 및 writeline 함수에 대한 입력 인수입니다. 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 소켓 연결 찾기
instrfind와 instrfindall은 제거될 예정입니다. 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 |
종결된 문자열 읽기
이 예제에서는 권장 기능을 사용하여 종결된 문자열 쓰기 및 읽기를 수행하는 방법을 보여줍니다.
| 기능 | 대체 기능 |
|---|---|
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'
| |
echoudp("on",9090) % u is a udp object u.Terminator = "CR"; fprintf(u,"hello") data = fgets(u) data =
'hello
'
|
문자열 데이터 읽기 및 구문 분석
이 예제에서는 권장 기능을 사용하여 문자열 데이터를 읽고 구문 분석하는 방법을 보여줍니다.
| 기능 | 대체 기능 |
|---|---|
% 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" |
메모리에서 데이터 플러시하기
이 예제에서는 권장되는 기능을 사용하여 버퍼에서 데이터를 플러시하는 방법을 보여줍니다.
| 기능 | 대체 기능 |
|---|---|
% 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 함수 도움말 페이지의 다음 예제를 참조하십시오.