tcpserver

Создайте сервер TCP/IP

    Описание

    tcpserver объект представляет сервер TCP/IP, который получает клиентский запрос связи TCP/IP от заданного IP-адреса и номера порта и принимает запрос. Если сервер устанавливает связь, можно получить данные из и отправить данные в клиентское чтение использования и записать функции. Каждый tcpserver поддержка объектов только одна клиентская связь за один раз.

    Создание

    Описание

    пример

    t = tcpserver(address,port) создает сервер TCP/IP, который прислушивается к клиентскому запросу связи TCP/IP в IP-адресе, заданном address и номер порта задан port.

    Входной параметр address устанавливает ServerAddress свойство и входной параметр port устанавливает ServerPort свойство.

    пример

    t = tcpserver(port) создает сервер TCP/IP, который прислушивается к клиентскому запросу связи в номере порта port и IP-адрес "::". Этот IP-адрес указывает, что сервер принимает клиентскую связь от любого допустимого IP-адреса на машине.

    пример

    t = tcpserver(___,Name,Value) создает сервер TCP/IP и устанавливает дополнительные свойства с помощью одного или нескольких аргументов пары "имя-значение". Установите TimeoutByteOrder, и ConnectionChangedFcn аргументы пары "имя-значение" использования свойств. После любой из комбинаций входных аргументов в предыдущих синтаксисах заключите каждое имя свойства в кавычки, сопровождаемые значением свойства.

    Например, t = tcpserver(4000,"Timeout",20,"ByteOrder","big-endian") создает сервер TCP/IP, который прислушивается к связям на порте 4000 в IP-адресе "::". Это устанавливает период тайм-аута на 20 секунд и порядок байтов к обратному порядку байтов.

    Свойства

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

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

    IP-адрес, где сервер прислушивается к клиентским связям TCP/IP в виде вектора символов или строкового скаляра. Можно установить это свойство на любой допустимый адрес IPv4, адрес IPv6 или имя хоста машины. Это свойство может быть установлено только при создании объекта.

    Пример: t = tcpserver("144.212.100.10",4000) прислушивается к связям в порте 4000 и IP-адрес 144.212.100.10.

    Примечание

    Если вы задаете имя хоста при создании объекта, tcpserver твердость это к IPv4 или адресу IPv6 и наборам ServerAddress к разрешенному IP-адресу.

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

    Номер порта, где сервер прислушивается к клиентским связям TCP/IP в виде номера между 1 и 65535, включительно. Это свойство может быть установлено только при создании объекта.

    Пример: t = tcpserver("144.212.100.10",4000) прислушивается к связям в порте 4000 и IP-адрес 144.212.100.10.

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

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

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

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

    Последовательный порядок, в котором байты располагаются в большие численные значения в виде "little-endian" или "big-endian". Это только запрашивает следующие типы числовых данных: uint16int16uint32int32uint64int64единственный, и double. Установите это свойство при создании объекта с помощью аргумента пары "имя-значение". Можно также изменить его после создания объекта с помощью записи через точку.

    Пример: t = tcpserver("144.212.100.10",4000,"ByteOrder","big-endian") устанавливает порядок байтов на обратный порядок байтов.

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

    Функция обратного вызова инициирована событием связи или разъединения в виде указателя на функцию. Событие связи или разъединения имеет место, когда клиент TCP/IP соединяется с или отключается от сервера. Установите это свойство при создании объекта с помощью аргумента пары "имя-значение". Можно также изменить его после создания объекта с помощью записи через точку. Это свойство пусто, пока вы не присваиваете указатель на функцию.

    Пример: t = tcpserver("144.212.100.10",4000,"ConnectionChangedFcn",@myConnectionFcn) устанавливает функцию обратного вызова связи на myConnectionFcn. Когда клиент соединяется или разъединяется, myConnectionFcn триггеры.

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

    Свойства связи

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

    Состояние связи сервера, возвращенное как числовой или логический 1 TRUE) или 0 ложь). Если значением этого свойства является true, клиент TCP/IP соединяется с сервером.

    Можно соединиться только с одним клиентом за один раз. Если клиент отключается от сервера, можно сразу соединиться с другим клиентом.

    Типы данных: логический

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

    IP-адрес связанного клиента, возвращенного как строка. Значение этого свойства совпадает с IP-адресом клиента. Значение этого свойства пусто, пока клиент TCP/IP не устанавливает связь с сервером. Если клиент отключается от сервера, значение этого свойства становится пустым.

    Пример: t.ClientAddress возвращает IP-адрес связанного клиента.

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

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

    Номер порта связанного клиента, возвращенного как двойное. Значение этого свойства пусто, пока клиент TCP/IP не устанавливает связь с сервером.

    Пример: t.ClientPort возвращает номер порта связанного клиента.

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

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

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

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

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

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

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

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

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

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

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

    Общее количество записанных байтов, возвращенных как числовое значение. Значение этого свойства не сбрасывает к 0, когда клиент разъединяется или снова соединяется с сервером.

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

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

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

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

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

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

    Пример: configureCallback(t,"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Запишите один binblock данных из сервера TCP/IP
    configureTerminatorУстановите терминатор строки для коммуникации строки ASCII
    configureCallbackУстановите функцию обратного вызова и инициируйте условие для коммуникации
    flushОчистите буферы для коммуникации с помощью сервера TCP/IP

    Примеры

    свернуть все

    Создайте сервер TCP/IP под названием t это прислушивается к связям в IP-адресе и порте вашей машины 4000. Ваш IP-адрес отличается от того в этом примере. Это должен быть любой допустимый адрес IPv4, адрес IPv6 или имя хоста адаптера на машине.

    t = tcpserver("172.28.200.145",4000)
    t = 
      TCPServer with properties:
    
            ServerAddress: "172.28.200.145"
               ServerPort: 4000
                Connected: 0
            ClientAddress: ""
               ClientPort: []
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Значения Connected, ClientAddress, и ClientPort свойства указывают, что клиент TCP/IP не соединяется с сервером.

    Создайте сервер TCP/IP под названием t это прислушивается к связям во всех IP-адресах и порте 4000.

    t = tcpserver(4000)
    t = 
      TCPServer with properties:
    
            ServerAddress: "::"
               ServerPort: 4000
                Connected: 0
            ClientAddress: ""
               ClientPort: []
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Значения Connected, ClientAddress, и ClientPort свойства указывают, что клиент TCP/IP не соединяется с сервером.

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

    t = tcpserver(4000,"Timeout",20)
    t = 
      TCPServer with properties:
    
            ServerAddress: "::"
               ServerPort: 4000
                Connected: 0
            ClientAddress: ""
               ClientPort: []
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Отобразите значение Timeout.

    t.Timeout
    ans = 20
    

    Выход показывает заданное значение тайм-аута, указывая на тот t ожидает в течение максимум 20 секунд, чтобы завершить операцию чтения или операцию записи.

    Создайте функцию обратного вызова под названием connectionFcn и сохраните его как .m файл в текущей рабочей директории. Когда эта функция обратного вызова вызывается, она отображает сообщение в связи указания командного окна MATLAB или разъединении. Можно изменить этот код, чтобы выполнить операции чтения или операции записи на сервере TCP/IP вместо того, чтобы отобразить сообщение.

    function connectionFcn(src,~)
    if src.Connected
       disp("This message is sent by the server after accepting the client connection request.")
    else
       disp("Client has disconnected.")
    end
    end
    

    Создайте сервер TCP/IP под названием server и набор ConnectionChangedFcn свойство к указателю на connectionFcn функция обратного вызова.

    server = tcpserver("localhost",4000,"ConnectionChangedFcn",@connectionFcn)
    server = 
      TCPServer with properties:
    
            ServerAddress: "127.0.0.1"
               ServerPort: 4000
                Connected: 0
            ClientAddress: ""
               ClientPort: []
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Создайте клиент TCP/IP под названием client с тем же IP-адресом и номером порта как ваш сервер.

    client = tcpclient("localhost",4000)
    client = 
      tcpclient with properties:
    
                  Address: 'localhost'
                     Port: 4000
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    This message is sent by the server after accepting the client connection request.

    После того, как вы создадите клиент, это связывает с сервером. Это инициировало событие связи для сервера, который вызывает connectionFcn функция обратного вызова. Функция обратного вызова возвращает сообщение, которое вы видите в Командном окне.

    Отключите клиент от сервера путем очистки его.

    clear client

    Client has disconnected.

    Очистка клиента инициировала событие разъединения для сервера и возвращает сообщение в connectionFcn функция обратного вызова.

    Создайте сервер TCP/IP, который прислушивается к клиентскому запросу связи в заданном порте и IP-адресе. Затем запишите данные от сервера до связанного клиента.

    Создайте сервер TCP/IP, который прислушивается к связям в localhost и порт 4000.

    server = tcpserver("localhost",4000)
    server = 
      TCPServer with properties:
    
            ServerAddress: "127.0.0.1"
               ServerPort: 4000
                Connected: 0
            ClientAddress: ""
               ClientPort: []
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Создайте клиент TCP/IP, чтобы соединиться с вашим серверный объектом с помощью tcpclient. Необходимо задать тот же IP-адрес и номер порта, который вы используете, чтобы создать server.

    client = tcpclient("localhost",4000)
    client = 
      tcpclient with properties:
    
                  Address: 'localhost'
                     Port: 4000
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Смотрите значения Connected, ClientAddress, и ClientPort свойства для server.

    server
    server = 
      TCPServer with properties:
    
            ServerAddress: "127.0.0.1"
               ServerPort: 4000
                Connected: 1
            ClientAddress: "127.0.0.1"
               ClientPort: 65136
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Выход показывает тот server успешно принимает запрос от client и тот client устанавливает связь с server.

    Отправьте данные клиенту путем записи его с помощью server объект. Поскольку клиент соединяется с сервером, эти данные доступны в клиенте. Считайте эти данные из client объект.

    write(server,"hello world","string")
    read(client,11,"string")
    ans = 
    "hello world"
    

    Создайте сервер TCP/IP, который прислушивается к клиентскому запросу связи в заданном порте и IP-адресе. Затем считайте данные, отправленные в сервер от связанного клиента.

    Создайте сервер TCP/IP, который прислушивается к связям в localhost и порт 4000.

    server = tcpserver("localhost",4000)
    server = 
      TCPServer with properties:
    
            ServerAddress: "127.0.0.1"
               ServerPort: 4000
                Connected: 0
            ClientAddress: ""
               ClientPort: []
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Создайте клиент TCP/IP, чтобы соединиться с вашим серверный объектом с помощью tcpclient. Необходимо задать тот же IP-адрес и номер порта, который вы используете, чтобы создать server.

    client = tcpclient("localhost",4000)
    client = 
      tcpclient with properties:
    
                  Address: 'localhost'
                     Port: 4000
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Отобразите значения Connected, ClientAddress, и ClientPort свойства для server.

    server
    server = 
      TCPServer with properties:
    
            ServerAddress: "127.0.0.1"
               ServerPort: 4000
                Connected: 1
            ClientAddress: "127.0.0.1"
               ClientPort: 65440
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Выход показывает тот server успешно принимает запрос от client и тот client устанавливает связь с server.

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

    write(client,"helloworld","string")
    read(server,5,"string")
    ans = 
    "hello"
    

    Если вы читаете еще пять значений, вы получаете остающиеся данные о строке.

    read(server,5,"string")
    ans = 
    "world"
    
    Введенный в R2021a