exponenta event banner

Перейдите к коду tcpserver Интерфейс

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

Создание сервера TCP/IP

В этих примерах показано, как создать и очистить сервер TCP/IP с помощью рекомендованных функций.

ФункциональностьИспользовать вместо этого
t = tcpip("192.168.2.15",3030,"NetworkRole","server");
fopen(t)

Привязка к хосту "0.0.0.0" (внутренний) и порт 3030 и принимает только клиентские соединения, исходящие от "192.168.2.15". MATLAB ® блокируется до установления клиентского соединения.

t = tcpserver("0.0.0.0",3030);

Это привязывается к "0.0.0.0" и порт 3030. "0.0.0.0" означает, что он принимает любые входящие запросы на подключение клиента на порту 3030. MATLAB не заблокирован.

fclose(t)
delete(t)
clear t
clear t

Дополнительные сведения см. в разделе tcpserver.

Запись и чтение

В этих примерах показано, как выполнять двоичную запись и чтение, а также как записывать и считывать неоконченные строковые данные, используя рекомендуемые функциональные возможности.

ФункциональностьИспользовать вместо этого
% t is a tcpip object
fwrite(t,1:5);
data = fread(t,5)
data =

     1
     2
     3
     4
     5
% t is a tcpserver object
write(t,1:5,"uint8")
data = read(t,5)
data =

     1     2     3     4     5
% 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'
% t is a tcpserver object
write(t,"hello","string");
length = 5;
data = read(t,length,"string")
data =

    "hello"

Дополнительные сведения см. в разделе write или read .

Чтение завершенной строки

В этих примерах показано, как записывать и считывать завершенные строковые данные с использованием рекомендуемой функциональности.

ФункциональностьИспользовать вместо этого
% t is a tcpip object
t.Terminator = "CR";
fprintf(t,"hello")
data = fscanf(t)
data =

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

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

    'hello'

fgetl считывает до достижения указанного терминатора, а затем отбрасывает его.

% 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 tcpserver object
data = readline(t)
data = 

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

  1×3 string array

    "a"    "b"    "c"

Дополнительные сведения см. в разделе readline.

Запись и чтение данных с помощью двоичного блочного протокола

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

ФункциональностьИспользовать вместо этого
% t is a tcpip object
binblockwrite(t,1:5);
data = binblockread(t)
data =

     1
     2
     3
     4
     5
% t is a tcpserver 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 tcpserver object
flush(t,"input")
% t is a tcpip object
flushoutput(t)
% t is a tcpserver object
flush(t,"output")
% t is a tcpip object
flushinput(t)
flushoutput(t)
% t is a tcpserver object
flush(t)

Дополнительные сведения см. в разделе flush.

Установить терминатор

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

ФункциональностьИспользовать вместо этого
% t is a tcpip object
t.Terminator = "CR/LF";
% t is a tcpserver object
configureTerminator(t,"CR/LF")
% t is a tcpip object
t.Terminator = {"CR/LF" [10]};
% t is a tcpserver 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 tcpserver 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 tcpserver 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.

См. также

Связанные темы