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

首先是C#的部分

//介于我是同台电脑上传数据,直接用自己的IP建一个Server
IPAddress ip = IPAddress.Parse("192.168.65.1");
TcpListener server = new TcpListener(ip, );//端口选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, , 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", , 'NetworkRole', 'client'); % Set size of receiving buffer, if needed.
set(t, 'InputBufferSize', ); % timeout是指每格多久穿一次数据,我试下来最快是1s
set(t, 'timeout', );
 % Open connection to the server. 打开client
  fopen(t);  

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

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

用TCP IP从C#实时传数据到Matlab的更多相关文章

  1. TCP/IP UDP 协议首部及数据进入协议栈封装的过程

    数据的封装 UDP 封装 TCP 封装 IP 封装 检验和算法 当应用程序用TCP传送数据时,数据被传送入协议栈中,然后逐一通过每一层直到被当作一串比特流送入网络 注: UDP数据TCP数据基本一致. ...

  2. TCP/IP 协议是如何保证数据可靠性的?

    原文: 网络基础:TCP协议-如何保证传输可靠性 TCP协议传输的特点主要就是面向字节流.传输可靠.面向连接.这篇博客,我们就重点讨论一下TCP协议如何确保传输的可靠性的. 确保传输可靠性的方式TCP ...

  3. android 网络编程--socket tcp/ip udp http之间的关系

    网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层,一般编程人员接触最多的就是应用层和运输层,再往下的就是所谓的媒体层了,不是我们研究的对象. 下面是应用层.运输层,网络 ...

  4. 【转】TCP/IP协议栈及OSI参考模型详解

    OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...

  5. TCP/IP协议栈及OSI参考模型详解

    OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...

  6. TCP/IP 协议栈及 OSI 参考模型详解

    OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...

  7. 网络编程TCP/IP详解

    网络编程TCP/IP详解 1. 网络通信 中继器:信号放大器 集线器(hub):是中继器的一种形式,区别在于集线器能够提供多端口服务,多口中继器,每个数据包的发送都是以广播的形式进行的,容易阻塞网络. ...

  8. TCP/IP协议 (图解+秒懂+史上最全)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  9. TCP/IP协议(二)tcp/ip基础知识

    今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...

随机推荐

  1. mysl 常用函数 union all if ifnull exists case when

    1.union all UNION 操作符用于合并两个或多个 SELECT 语句的结果集.请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 S ...

  2. 51nod 1228、1258 序列求和

    这里一次讲两题...貌似都是板子? 所以两题其实可以一起做 [雾 noteskey 总之就是伯努利数的两道入门题啦,就是第二道有点鬼畜了,居然要任意模数的!(好吧是 1e9+7 但也没什么区别了) 伯 ...

  3. Lua中的userdata

    [话从这里说起] 在我发表<Lua中的类型与值>这篇文章时,就有读者给我留言了,说:你应该好好总结一下Lua中的function和userdata类型.现在是时候总结了.对于functio ...

  4. Linux下安装python的gmpy2库及遇到无法定位软件包的解决办法

    gmpy2需要gmp.h &mpfr.h &mpc.h 安装命令: sudo apt-get install libmpfr-dev libmpc-dev  成功之后再输入安装命令: ...

  5. web开篇

    一.内容回顾 1.python基础 2.网络编程 3.并发编程 4.前端 5.数据库(MySQL) 二.今日概要 1.了解Web应用程序的本质 2.Django简介及安装使用 三.今日详细 1.最简单 ...

  6. java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换

    一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.B ...

  7. java 查找类的所有子类

    package _02; import java.io.File; import java.net.URL; public class MainTest_FindAllSubClass { publi ...

  8. tensorflow 传入值-【老鱼学tensorflow】

    上个文章中讲述了tensorflow中如何定义变量以及如何读取变量的方式,本节主要讲述关于传入值. 变量主要用于在tensorflow系统中经常会被改变的值,而对于传入值,它只是当tensorflow ...

  9. Laravel日常使用总结

    字段当做键值key 集合的keyBy()方法详情:戳这里 创建模型类和数据库迁移文件 php artisan make:model Post -m 创建控制器和基础的方法 php artisan ma ...

  10. Unix历史及相关概念回顾

    欢迎来到Unix的世界 很多人都用了很多年的Unix(其实更熟悉的是叫Linux),也接触到Unix世界中的各种概念,比如GCC.GNU.BSD.POSIX.GPL等等,也大都知道一些传奇的如雷贯耳的 ...