Свяжитесь Используя Сокеты Сервера TCP/IP

О сокетах сервера

Поддержка Сокетов Сервера доступна, с помощью свойства NetworkRole в интерфейсе TCP/IP. Эта поддержка для одной удаленной связи. Можно использовать эту связь, чтобы связаться между клиентом и MATLAB®, или между двумя экземплярами MATLAB.

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

Примечание

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

Это предназначается для использования позади брандмауэра на частной сети.

Обратите внимание на то, что, в то время как сокет сервера ожидает связи после вызова fopen, MATLAB, обрабатывающий поток, блокируется. Остановить fopen или прекратить прислушаться к связям и восстанавливать использование MATLAB, Ctrl+C типа в командной строке MATLAB.

Пример

Чтобы использовать эту функцию, необходимо установить свойство NetworkRole в интерфейсе tcpip. Это использует два значения, client и server, чтобы установить связь как клиент или сервер. Функция сокетов сервера поддерживает передачи ASCII и двоичный файл.

Следующий пример показывает, как соединить два сеанса работы с MATLAB на том же компьютере, показав пример кода для каждого сеанса. Чтобы использовать два различных компьютера, замените 'localhost' на IP-адрес сервера в коде для Сеанса 2. Используя '0.0.0.0', когда IP-адрес означает, что сервер примет первую машину, которая пытается соединиться. Ограничить связи, которые будут приняты, замена '0.0.0.0' с адресом клиента в коде для Сеанса 1.

Сеанс 1: сервер MATLAB

Примите связь от любой машины на порте 30000.

t = tcpip('0.0.0.0', 30000, 'NetworkRole', 'server');

Откройте связь. Это не возвратится, пока связь не получена.

fopen(t);

Считайте форму волны и подтвердите его визуально путем графического вывода его.

data = fread(t, t.BytesAvailable);
plot(data);

Сеанс 2: Клиент MATLAB

Этот код работает на второй копии MATLAB.

Создайте форму волны и визуализируйте ее.

data = sin(1:64);
plot(data);

Создайте клиентский интерфейс и откройте его.

t = tcpip('localhost', 30000, 'NetworkRole', 'client');
fopen(t)

Запишите форму волны в сеанс сервера.

fwrite(t, data)