ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Matlab - TCP/IP通讯

2020-02-21 19:58:58  阅读:288  来源: 互联网

标签:10 tcpclient read IP TCP Matlab data


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>;

标签:10,tcpclient,read,IP,TCP,Matlab,data
来源: https://www.cnblogs.com/zhouhaocheng---yijianqinxin/p/12342711.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有