tcpclient

Создайте клиентскую связь TCP/IP с сервером TCP/IP

Описание

tcpclient объект представляет связь с удаленным серверным и удаленным портом от MATLAB®, чтобы читать и записать данные. Удаленный хост может быть сервером или оборудованием, которое поддерживает коммуникацию TCP/IP и должно уже существовать. tcpclient объект всегда является клиентом и не может использоваться в качестве сервера. Для получения информации о создании сервера TCP/IP смотрите, Связываются Используя Сокеты Сервера TCP/IP (Instrument Control Toolbox).

Создание

Описание

пример

t = tcpclient(address,port) создает клиент TCP/IP, который соединяет с сервером, сопоставленным с удаленным хостом address и удаленный порт port. Значение address может быть или удаленное имя хоста или удаленный IP-адрес хоста. Значение port должен быть номер между 1 и 65535. Вход address устанавливает Address свойство и вход port устанавливает Port свойство.

Если вы задали недопустимый адрес или порт, сервер TCP/IP не запускается, или связь с сервером не может быть установлена, то объект не создается, и MATLAB выдает ошибку.

пример

t = tcpclient(address,port,Name,Value) создает связь и устанавливает дополнительные свойства с помощью одного или нескольких аргументов пары "имя-значение". Установите Timeout и ConnectTimeout аргументы пары "имя-значение" использования свойств. Заключите каждое имя свойства в кавычки, сопровождаемые значением свойства.

Пример: t = tcpclient("144.212.130.17",80,"Timeout",20,"ConnectTimeout",30) создает клиентскую связь TCP/IP с сервером TCP/IP на порте 80 в IP-адресе 44.212.130.17. Это устанавливает период тайм-аута на 20 секунд и тайм-аут связи к 30 секундам.

Свойства

развернуть все

Свойства создания объекта

Удаленное имя хоста или IP-адрес в виде вектора символов или строкового скаляра. Это свойство может быть установлено только при создании объекта.

Пример: t = tcpclient("www.mathworks.com",80) создает клиентскую связь TCP/IP с портом 80 в www.mathworks.com.

Пример: t = tcpclient("144.212.130.17",80) создает клиентскую связь TCP/IP с сервером TCP/IP на порте 80 в IP-адресе 144.212.130.17.

Типы данных: char | string

Удаленный серверный порт в виде номера между 1 и 65535, включительно. Это свойство может быть установлено только при создании объекта.

Пример: t = tcpclient("www.mathworks.com",80) создает клиентскую связь TCP/IP с портом 4012 в www.mathworks.com.

Типы данных: double

Допустимое время в секундах, чтобы завершить операции чтения и операции записи в виде числового значения. Установите это свойство при создании объекта с помощью аргумента пары "имя-значение". Можно также изменить его после создания объекта с помощью записи через точку.

Пример: t = tcpclient("144.212.130.17",80,"Timeout",20) устанавливает период тайм-аута чтения-записи на 20 секунд.

Типы данных: double

Допустимое время в секундах, чтобы соединиться с удаленным хостом в виде числового значения. Это свойство указывает, что максимальное время, чтобы ожидать связи запрашивает к заданному удаленному хосту успешно выполниться или перестать работать. Это свойство может быть установлено только при создании объекта.

Пример: t = tcpclient("144.212.130.17",80,"ConnectTimeout", 30) устанавливает период тайм-аута связи на 30 секунд.

Типы данных: double

Считайте и запишите свойства

Это свойство доступно только для чтения.

Количество байтов, доступных в чтение, возвращенное как числовое значение.

Пример: t.NumBytesAvailable возвращает количество байтов, доступных в чтение.

Типы данных: double

Это свойство доступно только для чтения.

Общее количество байтов записано в удаленный хост, возвращенный как числовое значение.

Пример: t.NumBytesWritten возвращает количество записанных байтов.

Типы данных: double

Последовательный порядок, в котором байты располагаются в большие численные значения в виде "little-endian" или "big-endian".

Пример: t.ByteOrder = "little-endian" устанавливает порядок байтов на прямой порядок байтов.

Типы данных: char | string

Символ Терминатора для чтения и записи отключенных ASCII данных, возвращенных как "LF", "CR", "CR/LF", или номер от 0 до 255, включительно. Если чтение и терминаторы строки записи отличаются, Terminator возвращен как 1x2 массив ячеек этих значений. Установите это свойство с configureTerminator функция.

Пример: configureTerminator(t,"CR") наборы оба чтение и терминаторы строки записи к "CR".

Пример: configureTerminator(t,"CR",10) устанавливает терминатор строки чтения на "CR" и терминатор строки записи к 10.

Типы данных: double | char | string

Свойства коллбэка

Байты доступный триггерный режим коллбэка, возвращенный как "off", "byte", или "terminator". Эта установка определяет, выключен ли коллбэк, инициирован количеством байтов, заданных BytesAvailableFcnCount, или инициированный терминатором строки задан Terminator. Установите это свойство с configureCallback функция.

Пример: configureCallback(t,"byte",50,@callbackFcn) устанавливает callbackFcn коллбэк, чтобы инициировать каждый раз 50 байтов новых данных доступен, чтобы быть считанным.

Пример: configureCallback(t,"terminator",@callbackFcn) устанавливает callbackFcn коллбэк, чтобы инициировать, когда терминатор строки доступен, чтобы быть считанным.

Пример: configureCallback(dev,"off") выключает коллбэки.

Типы данных: char | string

Количество байтов данных, чтобы инициировать коллбэк, заданный BytesAvailableFcn, возвращенный как двойное. Это значение используется только когда BytesAvailableFcnMode свойством является "byte". Установите эти свойства с configureCallback функция.

Пример: configureCallback(t,"byte",50,@callbackFcn) устанавливает callbackFcn коллбэк, чтобы инициировать каждый раз 50 байтов новых данных доступен, чтобы быть считанным.

Типы данных: double

Функция обратного вызова, инициированная байты доступное событие, возвращенное как указатель на функцию. Байты доступное событие сгенерировано путем получения определенного числа байтов или терминатора строки. Это свойство пусто, пока вы не присваиваете указатель на функцию. Установите это свойство с configureCallback функция.

Пример: configureCallback(t,"byte",50,@callbackFcn) устанавливает callbackFcn коллбэк, чтобы инициировать каждый раз 50 байтов новых данных доступен, чтобы быть считанным.

Типы данных: function_handle

Функция обратного вызова инициирована ошибочным событием, возвращенным как указатель на функцию. Ошибочное событие сгенерировано, когда асинхронное чтение или ошибка при записи происходят. Это свойство пусто, пока вы не присваиваете указатель на функцию.

Пример: t.ErrorOccurredFcn = @myErrorFcn

Типы данных: function_handle

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

Пример: t.UserData

Функции объекта

readСчитайте данные из удаленного хоста по TCP/IP
readlineПрочитайте строку данных о строке ASCII из удаленного хоста по TCP/IP
writeЗапишите данные к удаленному хосту по TCP/IP
writelineЗапишите линию данных о ASCII к удаленному хосту по TCP/IP
configureTerminatorУстановите терминатор строки для связи строки ASCII с удаленным хостом по TCP/IP
configureCallbackУстановите функцию обратного вызова и инициируйте условие для связи с удаленным хостом по TCP/IP
flushОчистите буферы для связи с удаленным хостом по TCP/IP

Примеры

свернуть все

Создайте объект TCP/IP t использование хоста обращается показанный и порт 80.

t = tcpclient("www.mathworks.com",80)
t = 
  tcpclient with properties:

              Address: 'www.mathworks.com'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

Когда вы соединяете использование имени хоста, такого как заданный веб-адрес или 'localhost', значения по умолчанию IP-адреса к формату IPv6. Если сервер, с которым вы соединяетесь, ожидает формат IPv4, сбои связи. Для IPv4 можно создать связь путем определения явного IP-адреса, а не имени хоста.

Создайте клиентскую связь TCP/IP под названием t использование показанного IP-адреса и порт 80.

t = tcpclient("144.212.130.17",80)
t = 
  tcpclient with properties:

              Address: '144.212.130.17'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

Создайте клиентскую связь TCP/IP под названием t и набор период тайм-аута к 20 секундам.

t = tcpclient("144.212.130.17",80,"Timeout",20)
t = 
  tcpclient with properties:

              Address: '144.212.130.17'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

ans = 20

Смотрите значение Timeout.

t.Timeout

Выход отражает изменение свойства.

Создайте клиентскую связь TCP/IP под названием t и набор ConnectTimeout свойство к 30 секундам.

t = tcpclient("144.212.130.17",80,"ConnectTimeout",30)
t = 
  tcpclient with properties:

              Address: '144.212.130.17'
                 Port: 80
    NumBytesAvailable: 0

  Show all properties, functions

Смотрите значение ConnectTimeout.

t.ConnectTimeout
ans = 30

Выход отражает изменение свойства.

Создайте клиентскую связь TCP/IP под названием t, соединение с TCP/IP повторяет сервер с портом 4000. Для этого у вас должен быть echotcpip работа сервера порта 4000.

echotcpip("on",4000)
t = tcpclient("localhost",4000)
t = 
  tcpclient with properties:

              Address: 'localhost'
                 Port: 4000
    NumBytesAvailable: 0

  Show all properties, functions

write функция синхронно записывает данные к удаленному хосту, соединенному с t. Сначала задайте данные и затем запишите данные. Функция приостанавливает выполнение MATLAB, пока конкретное количество значений не записано в удаленный хост.

Присвойте 10 байтов uint8 данные к переменной data.

data = uint8(1:10)
data = 1×10 uint8 row vector

    1    2    3    4    5    6    7    8    9   10

Просмотрите данные.

whos data
  Name      Size            Bytes  Class    Attributes

  data      1x10               10  uint8              

Запишите данные к серверу эха.

write(t,data)

Подтвердите успех операции записи путем просмотра NumBytesAvailable свойство.

t.NumBytesAvailable
ans = 10

Поскольку клиент соединяется с сервером эха, данные, которые вы пишете в сервер, возвращены в клиент. Считайте все байты доступных данных.

read(t)
ans = 1×10 uint8 row vector

    1    2    3    4    5    6    7    8    9   10

Используя read функция без аргументов читает все доступные байты данных из t соединенный с удаленным хостом и возвращает данные. Количество чтения значений определяется NumBytesAvailable свойство, которое является количеством байтов, доступных во входном буфере.

Закройте связь между клиентом TCP/IP и удаленным хостом путем очистки объекта. Выключите echotcpip сервер.

clear t
echotcpip("off")

Расширенные возможности

Введенный в R2014b