Создайте сервер TCP/IP
tcpserver
объект представляет сервер TCP/IP, который получает клиентский запрос связи TCP/IP от заданного IP-адреса и номера порта и принимает запрос. Если сервер устанавливает связь, можно получить данные из и отправить данные в клиентское чтение использования и записать функции. Каждый tcpserver
поддержка объектов только одна клиентская связь за один раз.
создает сервер TCP/IP, который прислушивается к клиентскому запросу связи TCP/IP в IP-адресе, заданном t
= tcpserver(address
,port
)address
и номер порта задан port
.
Входной параметр address
устанавливает ServerAddress
свойство и входной параметр port
устанавливает ServerPort
свойство.
создает сервер TCP/IP, который прислушивается к клиентскому запросу связи в номере порта t
= tcpserver(port
)port
и IP-адрес "::"
. Этот IP-адрес указывает, что сервер принимает клиентскую связь от любого допустимого IP-адреса на машине.
создает сервер TCP/IP и устанавливает дополнительные свойства с помощью одного или нескольких аргументов пары "имя-значение". Установите t
= tcpserver(___,Name,Value
)Timeout
ByteOrder
, и ConnectionChangedFcn
аргументы пары "имя-значение" использования свойств. После любой из комбинаций входных аргументов в предыдущих синтаксисах заключите каждое имя свойства в кавычки, сопровождаемые значением свойства.
Например, t = tcpserver(4000,"Timeout",20,"ByteOrder","big-endian")
создает сервер TCP/IP, который прислушивается к связям на порте 4000
в IP-адресе "::"
. Это устанавливает период тайм-аута на 20 секунд и порядок байтов к обратному порядку байтов.
ServerAddress
— IP-адрес, где сервер слушает"::"
(значение по умолчанию) | вектор символов | строковый скаляр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
ServerPort
— Номер порта, где сервер слушаетНомер порта, где сервер прислушивается к клиентским связям TCP/IP в виде номера между 1 и 65535, включительно. Это свойство может быть установлено только при создании объекта.
Пример:
t = tcpserver("144.212.100.10",4000)
прислушивается к связям в порте 4000 и IP-адрес 144.212.100.10.
Типы данных: double
Timeout
— Допустимое время, чтобы завершить операции чтения и операции записиДопустимое время в секундах, чтобы завершить операции чтения и операции записи в виде числового значения. Установите это свойство при создании объекта с помощью аргумента пары "имя-значение". Можно также изменить его после создания объекта с помощью записи через точку.
Пример: t = tcpserver("144.212.100.10",4000,"Timeout",20)
устанавливает период тайм-аута чтения-записи на 20 секунд.
Типы данных: double
ByteOrder
— Последовательный порядок байтов"little-endian"
(значение по умолчанию) | "big-endian"
Последовательный порядок, в котором байты располагаются в большие численные значения в виде "little-endian"
или "big-endian"
. Это только запрашивает следующие типы числовых данных: uint16
int16
uint32
int32
uint64
int64
единственный
, и double
. Установите это свойство при создании объекта с помощью аргумента пары "имя-значение". Можно также изменить его после создания объекта с помощью записи через точку.
Пример: t = tcpserver("144.212.100.10",4000,"ByteOrder","big-endian")
устанавливает порядок байтов на обратный порядок байтов.
Типы данных: char |
string
ConnectionChangedFcn
— Функция обратного вызова инициирована событием связи или разъединенияФункция обратного вызова инициирована событием связи или разъединения в виде указателя на функцию. Событие связи или разъединения имеет место, когда клиент TCP/IP соединяется с или отключается от сервера. Установите это свойство при создании объекта с помощью аргумента пары "имя-значение". Можно также изменить его после создания объекта с помощью записи через точку. Это свойство пусто, пока вы не присваиваете указатель на функцию.
Пример: t = tcpserver("144.212.100.10",4000,"ConnectionChangedFcn",@myConnectionFcn)
устанавливает функцию обратного вызова связи на myConnectionFcn
. Когда клиент соединяется или разъединяется, myConnectionFcn
триггеры.
Типы данных: function_handle
Connected
— Состояние связи сервераfalse
или 0
(значение по умолчанию) | true
или 1
Это свойство доступно только для чтения.
Состояние связи сервера, возвращенное как числовой или логический 1
TRUE
) или 0
ложь
). Если значением этого свойства является true
, клиент TCP/IP соединяется с сервером.
Можно соединиться только с одним клиентом за один раз. Если клиент отключается от сервера, можно сразу соединиться с другим клиентом.
Типы данных: логический
ClientAddress
— IP-адрес связанного клиента""
(значение по умолчанию) | строковый скалярЭто свойство доступно только для чтения.
IP-адрес связанного клиента, возвращенного как строка. Значение этого свойства совпадает с IP-адресом клиента. Значение этого свойства пусто, пока клиент TCP/IP не устанавливает связь с сервером. Если клиент отключается от сервера, значение этого свойства становится пустым.
Пример:
t.ClientAddress
возвращает IP-адрес связанного клиента.
Типы данных: string
ClientPort
— Номер порта связанного клиента[]
(значение по умолчанию) | числовойЭто свойство доступно только для чтения.
Номер порта связанного клиента, возвращенного как двойное. Значение этого свойства пусто, пока клиент TCP/IP не устанавливает связь с сервером.
Пример:
t.ClientPort
возвращает номер порта связанного клиента.
Типы данных: double
Terminator
— Символ Терминатора для данных"LF"
(значение по умолчанию) | "CR"
| "CR/LF"
| От 0 до 255Символ Терминатора для чтения и записи отключенных ASCII данных, возвращенных как "LF"
, "CR"
, "CR/LF"
, или числовое целое число от 0 до 255, включительно. Если чтение и терминаторы строки записи отличаются, Terminator
возвращен как 1x2 массив ячеек этих значений. Установите это свойство с configureTerminator
функция.
Пример: configureTerminator(t,"CR")
наборы оба чтение и терминаторы строки записи к "CR"
.
Пример: configureTerminator(t,"CR",10)
устанавливает терминатор строки чтения на "CR"
и терминатор строки записи к 10
.
Типы данных: double |
char
| string
NumBytesAvailable
— Количество байтов, доступных в чтениеЭто свойство доступно только для чтения.
Количество байтов, доступных в чтение, возвращенное как числовое значение.
Пример:
t.NumBytesAvailable
возвращает количество байтов, доступных в чтение.
Типы данных: double
NumBytesWritten
— Общее количество записанных байтовЭто свойство доступно только для чтения.
Общее количество записанных байтов, возвращенных как числовое значение. Значение этого свойства не сбрасывает к 0, когда клиент разъединяется или снова соединяется с сервером.
Пример:
t.NumBytesWritten
возвращает количество записанных байтов.
Типы данных: double
BytesAvailableFcnMode
— Байты доступный триггерный режим коллбэка"off"
(значение по умолчанию) | "byte"
| "terminator"
Байты доступный триггерный режим коллбэка, возвращенный как "off"
, "byte"
, или "terminator"
. Эта установка определяет, выключен ли коллбэк, инициирован количеством байтов, заданных BytesAvailableFcnCount
, или инициированный терминатором строки задан Terminator
. Установите это свойство с configureCallback
функция.
Пример:
configureCallback(t,"byte",50,@callbackFcn)
устанавливает callbackFcn
коллбэк, чтобы инициировать каждый раз 50 байтов новых данных доступен, чтобы быть считанным.
Пример: configureCallback(t,"terminator",@callbackFcn)
устанавливает callbackFcn
коллбэк, чтобы инициировать, когда терминатор строки доступен, чтобы быть считанным.
Пример: configureCallback(t,"off")
выключает коллбэки.
Типы данных: char |
string
BytesAvailableFcnCount
— Количество байтов данных, чтобы инициировать коллбэкКоличество байтов данных, чтобы инициировать коллбэк, заданный BytesAvailableFcn
, возвращенный как двойное. Это значение используется только когда BytesAvailableFcnMode
свойством является "byte"
. Установите эти свойства с configureCallback
функция.
Пример:
configureCallback(t,"byte",50,@callbackFcn)
устанавливает callbackFcn
коллбэк, чтобы инициировать каждый раз 50 байтов новых данных доступен, чтобы быть считанным.
Типы данных: double
BytesAvailableFcn
— Функция обратного вызова, инициированная байтами доступное событиеФункция обратного вызова, инициированная байты доступное событие, возвращенное как указатель на функцию. Байты доступное событие сгенерировано путем получения определенного числа байтов или терминатора строки. Это свойство пусто, пока вы не присваиваете указатель на функцию. Установите это свойство с configureCallback
функция.
Пример:
configureCallback(t,"byte",50,@callbackFcn)
устанавливает callbackFcn
коллбэк, чтобы инициировать каждый раз 50 байтов новых данных доступен, чтобы быть считанным.
Типы данных: function_handle
ErrorOccurredFcn
— Функция обратного вызова инициирована ошибочным событиемФункция обратного вызова инициирована ошибочным событием, возвращенным как указатель на функцию. Ошибочное событие сгенерировано, когда сетевое подключение для сервера прервано или потеряно. Это свойство пусто, пока вы не присваиваете указатель на функцию.
Пример:
t.ErrorOccurredFcn = @myErrorFcn
Типы данных: function_handle
UserData
— Свойство общего назначения для пользовательских данныхСвойство общего назначения для пользовательских данных, возвращенных как любой 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"
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.