创建 TCP/IP 客户端并配置设置
MATLAB® TCP/IP 客户端支持从 MATLAB 连接到远程主机或硬件以读取和写入数据。典型的工作流如下:
创建到服务器或硬件的 TCP/IP 连接。
配置连接(如有必要)。
执行读取和写入操作。
清除并关闭连接。
要通过 TCP/IP 接口进行通信,请首先创建一个 tcpclient 对象。
t = tcpclient(address,port);
地址可以为远程主机名称或远程 IP 地址。在这两种情况下,端口必须为 1 到 65535 之间的正整数。
使用主机名称创建对象
使用所示的主机地址和端口 80 创建 TCP/IP 对象 t。
t = tcpclient("www.mathworks.com",80)t =
tcpclient with properties:
Address: 'www.mathworks.com'
Port: 80
NumBytesAvailable: 0
Show all properties, functions
当您使用主机名(如指定的 Web 地址或 'localhost')连接时,IP 地址默认为 IPv6 格式。如果您要连接的服务器需要 IPv4 格式,连接将失败。对于 IPv4,您可以通过指定显式 IP 地址而不是主机名来创建连接。
使用 IP 地址创建对象
使用所示的 IP 地址和端口 80 创建 TCP/IP 对象 t。
t = tcpclient("144.212.130.17",80)t =
tcpclient with properties:
Address: '144.212.130.17'
Port: 80
NumBytesAvailable: 0
Show all properties, functions
设置超时属性
创建对象并使用名称-值对组参量来设置 Timeout 值。Timeout 参数以秒为单位指定完成读写操作的等待时间,默认值为 10。您可以在创建对象期间或在创建对象之后更改该值。
创建一个超时值为 20 秒的 TCP/IP 对象。
t = tcpclient("144.212.130.17",80,"Timeout",20)
t =
tcpclient with properties:
Address: '144.212.130.17'
Port: 80
NumBytesAvailable: 0
Show all properties, functions
查看 Timeout 属性。
t.Timeout
ans =
20
输出会反映 Timeout 属性更改。
设置连接超时属性
创建对象并使用名称-值对组参量来设置 ConnectTimeout 值。ConnectTimeout 参数指定等待对指定远程主机的连接请求是成功还是失败的最长时间(以秒为单位)。该值必须大于或等于 1。如果未指定 ConnectTimeout,则默认值为 Inf。仅可在对象创建期间指定该值。
创建一个 TCP/IP 对象,并将 ConnectTimeout 指定为 10 秒。
t = tcpclient("144.212.130.17",80,"ConnectTimeout",10)
t =
tcpclient with properties:
Address: '144.212.130.17'
Port: 80
NumBytesAvailable: 0
Show all properties, functions
查看 ConnectTimeout 属性。
t.ConnectTimeout
ans =
10
输出会反映 ConnectTimeout 属性更改。
注意
如果指定的地址或端口无效,或者无法建立与服务器的连接,则不会创建对象。
设置传输延迟属性
创建对象并使用名称-值对组参量来设置 EnableTransferDelay 值。EnableTransferDelay 参数指定纳格算法是打开还是关闭。如果启用传输延迟,客户端将收集小段未完成的数据,并在收到来自服务器的确认 (ACK) 时以单个数据包的形式发送这些小数据段。如果禁用传输延迟,客户端会立即向网络发送数据。如果不指定 EnableTransferDelay,默认情况下会设置为 true。仅可在对象创建期间指定该值。
创建一个禁用了传输延迟的 TCP/IP 对象。
t = tcpclient("144.212.130.17",80,"EnableTransferDelay",false)
t =
tcpclient with properties:
Address: '144.212.130.17'
Port: 80
NumBytesAvailable: 0
Show all properties, functions
查看 EnableTransferDelay 属性。
t.EnableTransferDelay
ans = logical 0
输出会反映 EnableTransferDelay 属性更改。
查看 TCP/IP 对象属性
创建 tcpclient 对象后,您可以查看属性及其值的完整列表。在 tcpclient 输出中点击 properties。
t = tcpclient("www.mathworks.com",80)t =
tcpclient with properties:
Address: 'www.mathworks.com'
Port: 80
NumBytesAvailable: 0
Show all properties, functions
Address: 'www.mathworks.com'
Port: 80
NumBytesAvailable: 0
ConnectTimeout: Inf
Timeout: 10
ByteOrder: "little-endian"
Terminator: "LF"
BytesAvailableFcnMode: "off"
BytesAvailableFcnCount: 64
BytesAvailableFcn: []
NumBytesWritten: 0
EnableTransferDelay: 1
ErrorOccurredFcn: []
UserData: []
有关如何配置这些属性的详细信息,请参阅属性。
您可以使用 configureTerminator 和 configureCallback 函数来配置某些属性。