Support for Server Sockets is available, using the
on the TCP/IP interface. This support is for a single remote connection.
You can use this connection to communicate between a client and MATLAB®,
or between two instances of MATLAB.
For example, you might collect data such as a waveform into one instance of MATLAB, and then want to transfer it to another instance of MATLAB.
The use of the server socket on either the client or server side should be done in accordance with the license agreement as it relates to your particular license option and activation type. If you have questions, you should consult with the administrator for your license or your legal department.
This is intended for use behind a firewall on a private network.
Note that while a server socket is waiting for a connection
fopen, the MATLAB processing
thread is blocked. To stop
fopen or to stop listening
for connections, and restore the use of MATLAB, type Ctrl+C at
the MATLAB command line.
To use this feature it is necessary to set the
tcpip interface. It uses two values,
to establish a connection as the client or the server. The server
sockets feature supports binary and ASCII transfers.
The following example shows how to connect two MATLAB sessions
on the same computer, showing the example code for each session. To
use two different computers, replace
the IP address of the server in the code for Session 2. Using '0.0.0.0'
as the IP address means that the server will accept the first machine
that tries to connect. To restrict the connections that will be accepted,
'0.0.0.0' with the address of the client
in the code for Session 1.
Session 1: MATLAB Server
Accept a connection from any machine on port 30000.
t = tcpip('0.0.0.0', 30000, 'NetworkRole', 'server');
Open a connection. This will not return until a connection is received.
Read the waveform and confirm it visually by plotting it.
data = fread(t, t.BytesAvailable); plot(data);
Session 2: MATLAB Client
This code is running on a second copy of MATLAB.
Create a waveform and visualize it.
data = sin(1:64); plot(data);
Create a client interface and open it.
t = tcpip('localhost', 30000, 'NetworkRole', 'client'); fopen(t)
Write the waveform to the server session.