主要内容

tcpclientfind

查找 TCP/IP 客户端连接

自 R2024a 起

    说明

    T = tcpclientfind 查找现有 TCP/IP 客户端连接,并返回与每个连接对应的 tcpclient 对象的数组。

    示例

    T = tcpclientfind(Name=Value) 查找其属性值与一个或多个名称-值参量指定的属性值匹配的连接。例如,T = tcpclientfind(Tag="mySensor") 返回其 Tag 属性设置为 "mySensor" 的现有 TCP/IP 客户端连接。

    示例

    示例

    全部折叠

    当一个 tcpclient 连接存在于 MATLAB® 工作区中或保存为类属性或 App 属性时,可能无法在不同函数或 App 回调中访问 tcpclient 对象。在这种情况下,您可以使用 tcpclientfind 查找和删除该连接。

    T = tcpclientfind
    T = 
    
       tcpclient with properties:
    
                  Address: '198.51.100.255'
                     Port: 80
                      Tag: ""
        NumBytesAvailable: 0
    

    要关闭此连接,请删除 T

    delete(T)

    此命令删除 tcpclient 对象并断开与客户端的连接。如果您要重新连接到主机,您必须使用 tcpclient 创建一个新客户端接口。

    在删除后,调用 tcpclientfind 确认没有现有连接。

    tcpclientfind
    ans =
    
         []

    请注意,变量 T 仍存在于工作区中,但它现在是无效句柄。

    T
    T = 
    
      handle to deleted tcpclient

    由于 tcpclient句柄对象,因此该变量在删除接口后仍存在。(有关这种类型的对象的详细信息,请参阅句柄对象行为。)您可以使用 clear 从工作区中删除无效的句柄。

    clear T

    您可以为连接分配一个标记,并稍后将该标记与 tcpclientfind 一起使用来访问该连接。当您需要在多个函数之间跟踪多个客户端连接时,这种标记非常有用。标记对于定位和访问 App 回调中的连接也很有用。要设置标记值,请使用 tcpclientTag 属性。

    创建两个 TCP/IP 客户端连接,为 Tag 属性赋值。

    c1 = tcpclient("192.168.1.2",6000,Tag="Send");
    c2 = tcpclient("192.168.1.2",10000,Timeout=2,Tag="Receive");

    查找具有标记 "Receive" 的连接。

    T = tcpclientfind(Tag="Receive")
    T = 
    
      tcpclient with properties:
    
                  Address: '192.168.1.2'
                     Port: 10000
                      Tag: "Receive"
        NumBytesAvailable: 0
    
      Show all properties, functions

    名称-值参数

    将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

    示例: tcpclientfind(Tag="Send",Port=6000) 返回到端口 6000 且其 Tag 属性设置为 "Send" 的现有 TCP/IP 客户端连接。

    对于 tcpclientfind,您可以使用 tcpclient 对象的一个或多个属性作为名称-值参量来指定要查找的连接的特性。

    输出参量

    全部折叠

    TCP/IP 客户端连接,以 tcpclient 对象或 tcpclient 对象数组形式返回。如果您调用不带名称-值参量的 tcpclientfind,则 T 包含所有现有连接。否则,T 包含其属性与您使用名称-值参量指定的值匹配的所有连接。

    如果满足以下条件,则 T 为空:

    • 不存在现有 TCP/IP 客户端连接。

    • 不存在与指定的属性值匹配的现有连接。例如,如果您指定 Tag="Scope" 并且不存在其 Tag 属性为 "Scope" 的现有连接,则 T 为空。

    • 您尝试匹配 tcpclient 对象没有的属性。例如,tcpclientfind(Speed=14400) 返回空数组,因为 tcpclient 没有 Speed 属性。

    版本历史记录

    在 R2024a 中推出

    另请参阅

    | |