Transition Your Code to tcpclient
Interface
The tcpip
function, its object functions, and its properties will be
removed. Use the tcpclient
interface instead.
tcpip Interface | tcpclient Interface | Example |
---|---|---|
tcpip , NetworkRole , and
fopen | tcpclient | Create a TCP/IP Client |
instrfind and instrfindall | tcpclientfind | Find Existing TCP/IP Client Connections |
fwrite
| write | Write and Read |
fread | read | |
fprintf | writeline | Read Terminated String |
fscanf | readline | Read Terminated String |
fgetl | Read and Parse String Data | |
fgets | ||
query | writeread | Write and Read Back Data |
binblockwrite | writebinblock | Write and Read Data with the Binary Block Protocol |
binblockread | readbinblock | |
flushinput and flushoutput | flush | Flush Data from Memory |
Terminator | configureTerminator | Set Terminator |
BytesAvailableFcnCount ,
BytesAvailableFcnMode , and
BytesAvailableFcn | configureCallback | Set Up Callback Function |
BytesAvailable | NumBytesAvailable | |
RemoteHost | Address | |
RemotePort | Port | |
TransferDelay | EnableTransferDelay | |
ErrorFcn | ErrorOccurredFcn | |
fclose | clear and delete | Disconnect TCP/IP Client Connections |
Removed Functionality
The LocalHost
, LocalPort
, and
LocalPortMode
properties will be
removed.
The ValuesReceived
and
ValuesSent
properties will be removed. You can calculate the
number of values sent using the NumBytesAvailable
property and the
data type of the data available. For example, if the
NumBytesAvailable
is 20 bytes of uint32
data, the number of values sent is five since each uint32
value is
four bytes.
The readasync
and
stopasync
functions and the ReadAsyncMode
and TransferStatus
properties will be removed. The updated
interface reads data asynchronously.
The BytesToOutput
,
InputBufferSize
, and OutputBufferSize
properties will be removed. Buffer sizes are automatically managed and sized as
needed.
The OutputEmptyFcn
property will be
removed. You can set callback functions using configureCallback
in
the updated interface, but not for this property.
The RecordDetail
, RecordMode
,
RecordName
, and RecordStatus
properties
will be removed.
The TimerFcn
and TimerPeriod
properties will
be removed. Use timer
instead.
The
Name
, Type
,
ObjectVisibility
, and Status
properties
will be removed.
Create a TCP/IP Client
These examples show how to create a TCP/IP client using the recommended functionality.
Functionality | Use This Instead |
---|---|
t = tcpip("localhost",3030);
fopen(t) |
t = tcpclient("localhost",3030); t.ByteOrder = "big-endian"; |
t = tcpip("127.0.0.1",3030,"NetworkRole","client"); fopen(t) |
t = tcpclient("127.0.0.1",3030); t.ByteOrder = "big-endian"; |
Note
Since the default value of ByteOrder
is
bigEndian
for tcpip
objects and
little-endian
for tcpclient
objects,
you must set it using dot notation to make the property values match.
The fopen
function is not available in the updated interface. The
object creation function tcpclient
both creates and connects the
object.
For more information, see tcpclient
.
Find Existing TCP/IP Client Connections
instrfind
and instrfindall
will be removed.
Use tcpclientfind
instead. (since R2024a)
Write and Read
These examples use an echo server to show how to perform a binary write and read, and how to write and read nonterminated string data, using the recommended functionality.
Functionality | Use This Instead |
---|---|
echotcpip("on",3030) % t is a tcpip object fwrite(t,1:5); data = fread(t,5) data = 1 2 3 4 5 |
echotcpip("on",3030) % t is a tcpclient object write(t,1:5,"uint8") data = read(t,5) data = 1×5 uint8 row vector 1 2 3 4 5 data = double(data) data = 1 2 3 4 5 |
echotcpip("on",3030) % t is a tcpip object fwrite(t,"hello","char") length = 5; data = fread(t,length,"char") data = 104 101 108 108 111 data = char(data)' data = 'hello' |
echotcpip("on",3030) % t is a tcpclient object write(t,"hello","string"); length = 5; data = read(t,length,"string") data = "hello" |
Read Terminated String
These examples show how to write and read terminated string data using the recommended functionality.
Functionality | Use This Instead |
---|---|
echotcpip("on",3030) % t is a tcpip object t.Terminator = "CR"; fprintf(t,"hello") data = fscanf(t) data = 'hello ' |
echotcpip("on",3030) % t is a tcpclient object configureTerminator(t,"CR"); writeline(t,"hello"); data = readline(t) a = "hello" |
echotcpip("on",3030) % t is a tcpip object t.Terminator = "CR"; fprintf(t,"hello") data = fgetl(t) data = 'hello'
| |
echotcpip("on",3030) % t is a tcpip object t.Terminator = "CR"; fprintf(t,"hello") data = fgets(t) data = 'hello '
|
Read and Parse String Data
This example shows how to read and parse string data using the recommended functionality.
Functionality | Use This Instead |
---|---|
% t is a tcpip object data = scanstr(t,';') data = 3×1 cell array {'a'} {'b'} {'c'} |
% t is a tcpclient object
data = readline(t) data = "a;b;c" data = strsplit(data,";") data = 1×3 string array "a" "b" "c" |
For more information, see readline
.
Write and Read Back Data
This example shows how to write ASCII terminated data and read ASCII terminated data back using the recommended functionality.
Functionality | Use This Instead |
---|---|
% t is a tcpip object data = query(t,'ctrlcmd') data = 'success' |
% t is a tcpclient object data = writeread(t,"ctrlcmd") data = "success" |
For more information, see writeread
.
Write and Read Data with the Binary Block Protocol
This example shows how to write data with the IEEE standard binary block protocol using the recommended functionality.
Functionality | Use This Instead |
---|---|
% t is a tcpip object
binblockwrite(t,1:5);
data = binblockread(t) data = 1 2 3 4 5 |
% t is a tcpclient object writebinblock(t,1:5,"uint8"); data = readbinblock(t) data = 1 2 3 4 5 |
For more information, see writebinblock
or readbinblock
.
Flush Data from Memory
These examples show how to flush data from the buffer using the recommended functionality.
Functionality | Use This Instead |
---|---|
% t is a tcpip object
flushinput(t)
|
% t is a tcpclient object flush(t,"input") |
% t is a tcpip object
flushoutput(t)
|
% t is a tcpclient object flush(t,"output") |
% t is a tcpip object
flushinput(t)
flushoutput(t)
|
% t is a tcpclient object
flush(t) |
For more information, see flush
.
Set Terminator
These examples show how to set the terminator using the recommended functionality.
Functionality | Use This Instead |
---|---|
% t is a tcpip object t.Terminator = "CR/LF"; |
% t is a tcpclient object configureTerminator(t,"CR/LF") |
% t is a tcpip object t.Terminator = {"CR/LF" [10]}; |
% t is a tcpclient object configureTerminator(t,"CR/LF",10) |
For more information, see configureTerminator
.
Set Up Callback Function
These examples show how to set up a callback function using the recommended functionality.
Functionality | Use This Instead |
---|---|
% t is a tcpip object t.BytesAvailableFcnCount = 5 t.BytesAvailableFcnMode = "byte" t.BytesAvailableFcn = @mycallback function mycallback(src,evt) data = fread(src,src.BytesAvailableFcnCount); disp(evt) disp(evt.Data) end Type: 'BytesAvailable' Data: [1×1 struct] AbsTime: [2019 12 21 16 35 9.7032] |
% t is a tcpclient object configureCallback(t,"byte",5,@mycallback); function mycallback(src,evt) data = read(src,src.BytesAvailableFcnCount); disp(evt) end ByteAvailableInfo with properties: BytesAvailableFcnCount: 5 AbsTime: 21-Dec-2019 12:23:01 |
% t is a tcpip object t.Terminator = "CR" t.BytesAvailableFcnMode = "terminator" t.BytesAvailableFcn = @mycallback function mycallback(src,evt) data = fscanf(src); disp(evt) disp(evt.Data) end Type: 'BytesAvailable' Data: [1×1 struct] AbsTime: [2019 12 21 16 35 9.7032] |
% t is a tcpclient object configureTerminator(t,"CR") configureCallback(t,"terminator",@mycallback); function mycallback(src,evt) data = readline(src); disp(evt) end TerminatorAvailableInfo with properties: AbsTime: 21-Dec-2019 12:23:01 |
For more information, see configureCallback
.
Disconnect TCP/IP Client Connections
The fclose
function is not available in the updated interface. To
disconnect TCP/IP client connections, use clear
or delete
instead, depending upon
whether you are working in a single workspace or multiple workspaces. For details, see
the following examples on the tcpclient
reference page: