exponenta event banner

tcpclient

Создание клиентского соединения TCP/IP с сервером TCP/IP

Описание

A tcpclient объект представляет соединение с удаленным хостом и удаленным портом от MATLAB ® для чтения и записи данных. Удаленный узел может быть сервером или оборудованием, поддерживающим связь TCP/IP, и должен уже существовать. tcpclient объект всегда является клиентом и не может использоваться в качестве сервера. Сведения о создании сервера TCP/IP см. в разделе Связь с помощью сокетов сервера TCP/IP.

Создание

Описание

пример

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" устанавливает порядок байтов 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
readbinblockСчитывание одной binblock данных с удаленного хоста по TCP/IP
writeЗапись данных на удаленный узел по TCP/IP
writelineЗапись строки данных ASCII на удаленный хост по TCP/IP
writebinblockЗапись одной двоичной блокировки данных на удаленный узел по TCP/IP
writereadКоманда записи на удаленный узел через 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