Переходите от кода к udpport Интерфейс

The udp функция, ее функции объекта и ее свойства будут удалены. Использовать udpport вместо этого.

Подключение к UDP-сокету

В этих примерах показано, как подключиться к UDP-сокету и отсоединиться от него с помощью рекомендуемой функциональности.

ФункциональностьВместо этого используйте это
u = udp;
fopen(u)
uByte = udpport("byte");
uDatagram = udpport("datagram");
fclose(u)
delete(u)
clear u
clear uByte
clear uDatagram

Для получения дополнительной информации см. udpport.

Прочтите и напишите

Эти примеры используют эхо-сервер, чтобы показать, как выполнить двоичную запись и чтение, а также запись и чтение неотключенной строки с помощью рекомендуемой функциональности.

ФункциональностьВместо этого используйте это
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,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
% 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.

См. также

Похожие темы