主要内容

tcpclient

与TCP/IP服务器建立TCP/IP客户端连接

描述

一个tcpclient对象表示MATLAB中到远程主机和远程端口的连接®读取和写入数据。远程主机可以是支持TCP/IP通信的服务器或硬件,并且必须已经存在。万博1manbetx的tcpclient对象始终是客户端,不能用作服务器。有关创建TCP/IP服务器的信息,请参见使用TCP/IP服务器套接字通信(仪表控制工具箱)

创建

描述

例子

t= tcpclient (地址港口创建一个TCP/IP客户端,连接到与远程主机相关联的服务器地址和远程端口港口.的价值地址可以是远程主机名或远程主机IP地址。的价值港口必须是1到65535之间的数字。输入地址设置地址属性和输入港口设置港口财产。

如果指定了无效的地址或端口,TCP/IP服务器没有运行,或者无法建立到服务器的连接,则不会创建对象,MATLAB将抛出错误。

例子

t= tcpclient (地址港口名称,值创建连接并设置附加连接属性使用一个或多个名称-值对参数。设置超时ConnectTimeout,EnableTransferDelay使用名称-值对参数的属性。将每个属性名用引号括起来,后跟属性值。

例子:t = tcpclient("144.212.130.17",80,"Timeout",20,"ConnectTimeout",30)在IP地址为144.212.130.17的端口80上创建到TCP/IP服务器的TCP/IP客户端连接。它将超时时间设置为20秒,连接超时时间设置为30秒。

属性

全部展开

对象创建属性

远程主机名或IP地址,指定为字符向量或字符串标量。此属性只能在创建对象时设置。

例子:T = tcpclient("www.tianjin-qmedu.com",80)创建一个TCP/IP客户端连接到www.tianjin-qmedu.com的端口80。

例子:T = tcpclient("144.212.130.17",80)在IP地址为144.212.130.17的端口80上创建到TCP/IP服务器的TCP/IP客户端连接。

数据类型:字符|字符串

远端主机端口,取值为1 ~ 65535之间的数字(含)。此属性只能在创建对象时设置。

例子:T = tcpclient("www.tianjin-qmedu.com",80)在www.tianjin-qmedu.com上创建一个TCP/IP客户端连接到端口4012。

数据类型:

完成读和写操作的允许时间(以秒为单位),指定为数值。在创建对象时使用名称-值对参数设置此属性。您也可以在对象创建后使用点表示法更改它。

例子:t = tcpclient("144.212.130.17",80,"Timeout",20)设置读写超时时间为20秒。

数据类型:

允许连接到远程主机的时间(以秒为单位),指定为数值。此属性指定等待到指定远程主机的连接请求成功或失败的最大时间。此属性只能在创建对象时设置。

例子:t = tcpclient("144.212.130.17",80,"ConnectTimeout",30)设置连接超时时间为30秒。

数据类型:

允许服务器延迟确认,指定为逻辑真正的.此属性指示Nagle的算法对于连接是打开还是关闭。

如果此属性为真正的,客户端收集小段未完成的数据,并在确认(ACK)从服务器到达时将它们发送到单个数据包中。将此属性设置为如果要立即将数据发送到网络。如果网络速度较慢,可以通过启用传输延迟来提高网络性能。然而,在快速网络中,确认很快到达,启用或禁用传输延迟之间的差异可以忽略不计。

此属性只能在创建对象时设置。

例子:t = tcpclient("144.212.130.17",80,"EnableTransferDelay",false)禁用传输延迟。

数据类型:逻辑

读写属性

此属性是只读的。

可读取的字节数,以数值形式返回。

例子:t.NumBytesAvailable返回可读取的字节数。

数据类型:

此属性是只读的。

写入远程主机的总字节数,以数值形式返回。

例子:t.NumBytesWritten返回写入的字节数。

数据类型:

字节排列成较大数值的顺序,指定为“低位优先”“大端法”

在读写多字节数据类型时设置此属性的值,例如uint16int16uint32int32,或.此属性的值必须与连接到的远程主机的配置匹配tcpclient.远程主机或其他应用程序的默认字节顺序可能为big-endian,而此属性的默认值为低位优先

例子:t.ByteOrder = "big-endian"设置字节顺序为大端序。

数据类型:字符|字符串

用于读写以ascii结尾的数据的终止符字符,返回为“如果”“CR”“CR / LF”,或0 ~ 255之间的数字(含)。如果读和写终止符不同,《终结者》返回这些值的1x2单元格数组。属性设置此属性configureTerminator函数。

例子:configureTerminator (t,“CR”)将读和写终止符设置为“CR”

例子:configureTerminator (t,“CR”,10)将读结束符设置为“CR”写结束符10

数据类型:|字符|字符串

回调函数属性

字节可用的回调触发模式,返回为“关闭”“字节”,或“终结者”.参数指定的字节数是否触发回调,此设置确定是否关闭BytesAvailableFcnCount,或由指定的终止符触发《终结者》.属性设置此属性configureCallback函数。

例子:configureCallback (t,“字节”,50岁,@callbackFcn)设置callbackFcn每次有50个字节的新数据可读取时触发回调。

例子:configureCallback (t,“终结者”,@callbackFcn)设置callbackFcn当可以读取终止符时触发的回调。

例子:“关闭”configureCallback (dev)关闭回调。

数据类型:字符|字符串

所指定的回调所触发的数据字节数BytesAvailableFcn,作为替身返回。此值仅在BytesAvailableFcnMode属性是“字节”.属性设置这些属性configureCallback函数。

例子:configureCallback (t,“字节”,50岁,@callbackFcn)设置callbackFcn每次有50个字节的新数据可读取时触发回调。

数据类型:

由字节可用事件触发的回调函数,作为函数句柄返回。字节可用事件是通过接收一定数量的字节或终止符来生成的。在分配函数句柄之前,此属性为空。属性设置此属性configureCallback函数。

例子:configureCallback (t,“字节”,50岁,@callbackFcn)设置callbackFcn每次有50个字节的新数据可读取时触发回调。

数据类型:function_handle

由错误事件触发的回调函数,作为函数句柄返回。当发生异步读或写错误时,会生成错误事件。在分配函数句柄之前,此属性为空。

例子:t. erroroccurs fcn = @myErrorFcn

数据类型:function_handle

用户数据的通用属性,作为任何MATLAB数据类型返回。例如,当从回调函数触发事件时,可以使用此属性存储数据。

例子:t.UserData

对象的功能

通过TCP/IP从远程主机读取数据
readline 通过TCP/IP从远程主机读取ASCII字符串数据行
通过TCP/IP向远程主机写入数据
writeline 写一行ASCII数据到远程主机通过TCP/IP
configureTerminator 设置通过TCP/IP与远程主机进行ASCII字符串通信的终止符
configureCallback 设置通过TCP/IP与远程主机通信的回调函数和触发条件
冲洗 清除通过TCP/IP与远程主机通信的缓冲区

例子

全部折叠

创建TCP/IP对象t使用显示的主机地址和端口80

T = tcpclient(“www.tianjin-qmedu.com”, 80)
t = tcpclient with properties:地址:'www.tianjin-qmedu.com'端口:80 NumBytesAvailable: 0显示所有属性,函数

当您使用主机名连接时,例如指定的web地址或“localhost, IP地址默认为IPv6格式。如果您连接的服务器使用IPv4格式,则连接失败。对于IPv4,您可以通过指定显式IP地址而不是主机名来创建连接。

创建TCP/IP客户端连接t使用显示的IP地址和端口80

T = tcpclient(“144.212.130.17”, 80)
t = tcpclient with properties:地址:'144.212.130.17'端口:80 NumBytesAvailable: 0显示所有属性,函数

创建TCP/IP客户端连接t并将超时时间设置为20秒。

T = tcpclient(“144.212.130.17”, 80,“超时”, 20)
t = tcpclient with properties:地址:'144.212.130.17'端口:80 NumBytesAvailable: 0显示所有属性,函数
Ans = 20

看到的价值超时

t.Timeout

输出反映了属性更改。

创建TCP/IP客户端连接t并设置ConnectTimeout属性为30秒。

T = tcpclient(“144.212.130.17”, 80,“ConnectTimeout”, 30)
t = tcpclient with properties:地址:'144.212.130.17'端口:80 NumBytesAvailable: 0显示所有属性,函数

看到的价值ConnectTimeout

t.ConnectTimeout
Ans = 30

输出反映了属性更改。

创建TCP/IP客户端连接t,连接到TCP/IP回声服务器,端口为4000。要做到这一点,你必须有一个echotcpip服务器在端口4000上运行。

echotcpip (“上”,4000) t = tcpclient(“localhost”, 4000)
t = tcpclient with properties:地址:'localhost'端口:4000 NumBytesAvailable: 0显示所有属性,函数

命令功能,同步向所连接的远端主机写入数据t.首先指定数据,然后写入数据。该函数暂停MATLAB的执行,直到将指定数量的值写入远程主机。

分配10个字节的uint8变量的数据数据

数据= uint8(1:10)
data =1×10 uint8行向量1 2 3 4 5 6 7 8 9 10

查看数据。

数据
名称大小字节类属性data 1x10 10 uint8

向echo服务器写入数据。

写(t,数据)

操作成功后,请查看NumBytesAvailable财产。

t.NumBytesAvailable
Ans = 10

由于客户端连接到echo服务器,因此写入服务器的数据将返回给客户端。读取所有可用的数据字节。

读(t)
ans =1×10 uint8行向量1 2 3 4 5 6 7 8 9 10

使用函数中读取所有可用字节的数据t连接到远程主机并返回数据。读取的值的数量由NumBytesAvailable属性,该属性是输入缓冲区中可用的字节数。

清除该对象,关闭TCP/IP客户端与远程主机之间的连接。关掉echotcpip服务器。

清晰的techotcpip (“关闭”

扩展功能

版本历史

在R2014b中引入