zoukankan      html  css  js  c++  java
  • Matlab

    Matlab - 上位机TCP/IP通讯

    Function Description
    tcplicent 创建TCP/IP客户端对象,以用于TCP/IP进行通信
    read 通过TCP/IP读取远程主机上的数据
    write 通过TCP/IP向远程主机传输数据

    创建TCP/IP连接

    使用主机名创建对象

    t = tcpclient("www.maths.com",80);
    /*当使用主机名(例如指定的 Web 地址或 'localhost')连接时,将根据网络接口的配置解析 IP 地址。其结果可能会将地址解析为 IPv4 地址或 IPv6 地址。如果 TCP/IP 服务器只接受传入连接为某种类型的地址,例如 IPv4 地址,则在创建客户端时可能需要使用显式 IP 地址,而不是主机名。*/
    

    使用IP地址创建对象

    t = tcpclient('172.28.154.231', 4012);
    /*使用IP,port建立TCP/IP对象*/
    

    Timeout

    t = tcpclient('172.28.154.231', 4012, 'Timeout', 20);
    /*指定读写操作的等待时间(以秒为单位)*/
    /*Timeout 不设置时,默认为10*/
    /*如果指定的地址或端口无效,或者无法建立与服务器的连接,则不会创建对象。*/
    

    ConnectTimeout

    t = tcpclient('172.28.154.231', 4012, 'ConnectTimeout', 10)
    /*指定对远程主机的连接请求是成功还是失败的最长时间(以秒为单位)*/
    /*此参数数值仅可以在创建期间修改,*/
    /*如果指定的地址或端口无效,或者无法建立与服务器的连接,则不会创建对象。*/
    

    创建后对 Client的修改

    <object_name>.<property_name> = <property_value>;
    t.Timeout = 30;
    

    读取和写入数据

    read

    read(t)  				//读取所有发送的发送的数据。
    
    read(t, 5)  			//仅读取五个字节的数。
    
    read(t, 10, 'double')  	//读取十个字节的数据,并且转化为double类型。
    

    write

    /*write 函数以同步方式将数据写入与 tcpclient 对象连接的远程主机。首先指定数据,然后写入该数据。此函数一直等到指定数量的值写入远程主机。*/
    /*在此示例中,tcpclient 对象 t 已存在。*/
    
    data = 1:10;     //创建数组data
    write(t, data);	 //输出数据
    
    /*对于任何读写操作,该数据类型将转换为 uint8 以便传输数据。如果指定了其他数据类型,则可以将其重新转换为所设置的任何数据类型。*/
    

    read and write

    >>t = tcplicent('172.28.154.231',1045)       //创建TCP/IP Client
    
    >>data = uint8(1:10)					   //创建data数组
    
    >>whos data								  //检查data数据
    Name     Size     Bytes     Class     Attributes
    
    data     1x10        10     uint8
    
    >>write(t, data)						    //发送data数据
    
    >>t.BytesAvailable							//检查是否使用BytesAvailable属性写入了数据
    
    ans = 
    
        10
        
    >>read(t)									//从服务器读取数据
    
    ans = 
    
      1    2    3    4    5    6    7    8    9    10
      
    >>clear t									//清楚tcp/ip对象 t		
      
    
    
    
    

    从服务器获取数据

    t = tcpclient('172.28.154.231', 1045)		//创建TCP/IP Client
    
    
    data = read(t, 30, 'double');
    /*使用 read 函数获取数据。对于来自 3 个传感器(温度、压力和湿度)的 10 个样本,指定要读取的字节数为 30。将数据类型指定为 double。*/
    
    data = reshape(data, [3, 10]);
    /*将 1×30 数据重构为 10×3 数据,各用一列来显示温度、压力和湿度。*/
    
    subplot(311);							//绘制温度图。
    plot(data(:, 1));
    
    subplot(312);							//绘制压力图。
    plot(data(:, 2));
    
    subplot(313);							//绘制湿度图。
    plot(data(:, 3));
    
    clear t									//清除对象断开连接
    

    关闭TCP/IP连接

    clear <Objectname>;
    

  • 相关阅读:
    加载与隐藏显示
    Task 自我总结认知
    修复SDF数据库引擎C#代码
    Windows防火墙开启后 ping不通了 的解决方案
    C# 串口
    WPF DataGrid中单元格运用Combobox的示例
    组合模式
    适配器模式
    【转载】.net 动态代理
    python数组操作
  • 原文地址:https://www.cnblogs.com/zhouhaocheng---yijianqinxin/p/12346566.html
Copyright © 2011-2022 走看看