博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用TCP IP从C#实时传数据到Matlab
阅读量:4984 次
发布时间:2019-06-12

本文共 1566 字,大约阅读时间需要 5 分钟。

项目需要要从C#传实时数据到Matlab到数据分析,应该很多人也有这个需求,但是网上这方面的数据比较少,所以我把代码稍微贴下

 

首先是C#的部分

//介于我是同台电脑上传数据,直接用自己的IP建一个ServerIPAddress ip = IPAddress.Parse("192.168.65.1");TcpListener server = new TcpListener(ip, 4210);//端口选5000以上比较好,可以多试试server.Start(); // 开始侦听TcpClient client = server.AcceptTcpClient();

到此为止,server就建成了,之后我们进行数据流部分

NetworkStream sendStream = client.GetStream();//获得用于数据传输的流String s = "Anything U Like";byte[] buffer = Encoding.Default.GetBytes(s.Trim());//将数据存进缓存中sendStream.Write(buffer, 0, buffer.Length);//最终写入流中
NetworkStream实例建成之后,字符串s你想改成什么改成什么,反复调用后面两行代码,把s变成字节流然后write一下就好了。至此Server部分结束。(当然你也可以把server在最后关掉之类的,但我这只是一个demo,没有其他线程所以似乎不用管)
 
之后Matlab的部分教程就更少了,只有Matlab官方的一些文档。
和上面一样,现建立TCPIP的实例,区别只是上面是server服务端,这是client客户端。
% Create TCP/IP object 't'. Specify server machine and port number. % 创建实例,设为client客户端,端口4210和C#的server服务端是一样的,IP地址就是本机t = tcpip("192.168.65.1", 4210, 'NetworkRole', 'client');% Set size of receiving buffer, if needed. set(t, 'InputBufferSize', 30000); % timeout是指每格多久穿一次数据,我试下来最快是1sset(t, 'timeout', 1);
 % Open connection to the server. 打开client
  fopen(t);  

client的实例就这样建好了,之后我们只要不断收数据。

while 1    if get(t, 'BytesAvailable') > 0        t.BytesAvailable         DataReceived = fscanf(t)    endend
这时你每1s(因为上面timeout设为了1s,当然你也可以设为别的值)会收到一个字符串DataReceived,这时你可以根据传的数据的格式,把整个字符串翻译回来,然后进行数据分析。
 
我没有试过能否直接传double或者int,有人尝试了下面评论吧~
 
这些封装好的函数本应该很简答,但是网上的资源真不好找,希望能对大家有所帮助。
 
我没讲解具体的原理,我参照了下面这些链接:
http://www.cnblogs.com/MrALei/p/3580574.html
http://blog.csdn.net/c0411034/article/details/70306480
 
 

转载于:https://www.cnblogs.com/codepenguin/p/7163135.html

你可能感兴趣的文章
android-Activity
查看>>
${sessionScope.user}的使用方法
查看>>
IOS断点下载
查看>>
Steal 偷天换日 题解(From luoguBlog)
查看>>
Hadoop HDFS学习总结
查看>>
C#wxpay和alipay
查看>>
Combination Sum
查看>>
WCF开发框架形成之旅---结合代码生成工具实现快速开发
查看>>
Spring事务管理
查看>>
JS||JQUERY常用语法
查看>>
talend hive数据导入到mysql中
查看>>
ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected
查看>>
linux下mysql配置文件my.cnf详解
查看>>
获取微信用户列表Openid
查看>>
架构必备词汇
查看>>
SublimeText快捷键操作
查看>>
Python开发 基礎知識 (未完代補)
查看>>
监听器的使用,以及实现, 测试
查看>>
java基础二 分支循环
查看>>
python--002--数据类型(list、tuple)
查看>>