C#字节流通信格式

类似通信格式的实现关键点:
byte数组转float的实现,BitConvetor.toSingle()
float类型转by,BitConverter.GetBytes
#客户端发送
public byte[] funFloattoBytes(byte command,float[] coordinate_camera)
{
List<byte> bufferList = new List<byte>();
bufferList.Add(command);
for (int i = ; i < coordinate_camera.Count(); i++)
{
byte[] bufferMid = BitConverter.GetBytes(coordinate_camera[i]);
bufferList.AddRange(bufferMid);
}
return bufferList.ToArray();
} #服务器端接收
//客户端连接成功后,服务器接收客户端发来的消息
byte[] buffer = new byte[ * * ];
//实际接收到的字节数
int r = sendScoket.Receive(buffer);
if (r == )
{
break;
}
//string str = Encoding.UTF8.GetString(buffer, 0, r);
//ShowMsg(sendScoket.RemoteEndPoint + ":" + str);
byte command=buffer[];
float[] receiveCommandFloat=new float[] ;
for (int i = ; i < receiveCommandFloat.Count(); i++)
{
receiveCommandFloat[i] = BitConverter.ToSingle(buffer, * i+);
} ShowMsg(command,receiveCommandFloat);
拓展:
在c#中可以使用BitConverter类中的函数进行转换,如下:
|
名称 |
说明 |
|
以字节数组的形式返回指定的双精度浮点值。 |
|
|
以字节数组的形式返回指定的单精度浮点值。 |
|
|
返回由字节数组中指定位置的八个字节转换来的双精度浮点数。 |
|
|
返回由字节数组中指定位置的四个字节转换来的单精度浮点数。 |
BitConverter类进行基础数据类型与字节数组之间的相互转换,此类便于操作基本形式的类型。一个字节定义为一个 8位无符号整数。包含的方法如下:
|
名称 |
说明 |
|
将指定的双精度浮点数转换为 64 位有符号整数。 |
|
|
以字节数组的形式返回指定的布尔值。 |
|
|
以字节数组的形式返回指定的 Unicode 字符值。 |
|
|
以字节数组的形式返回指定的双精度浮点值。 |
|
|
以字节数组的形式返回指定的 16 位有符号整数值。 |
|
|
以字节数组的形式返回指定的 32 位有符号整数值。 |
|
|
以字节数组的形式返回指定的 64 位有符号整数值。 |
|
|
以字节数组的形式返回指定的单精度浮点值。 |
|
|
以字节数组的形式返回指定的 16 位无符号整数值。 |
|
|
以字节数组的形式返回指定的 32 位无符号整数值。 |
|
|
以字节数组的形式返回指定的 64 位无符号整数值。 |
|
|
将指定的 64 位有符号整数转换成双精度浮点数。 |
|
|
返回由字节数组中指定位置的一个字节转换来的布尔值。 |
|
|
返回由字节数组中指定位置的两个字节转换来的 Unicode 字符。 |
|
|
返回由字节数组中指定位置的八个字节转换来的双精度浮点数。 |
|
|
返回由字节数组中指定位置的两个字节转换来的 16 位有符号整数。 |
|
|
返回由字节数组中指定位置的四个字节转换来的 32 位有符号整数。 |
|
|
返回由字节数组中指定位置的八个字节转换来的 64 位有符号整数。 |
|
|
返回由字节数组中指定位置的四个字节转换来的单精度浮点数。 |
|
|
将指定的字节数组的每个元素的数值转换为它的等效十六进制字符串表示形式。 |
|
|
将指定的字节子数组的每个元素的数值转换为它的等效十六进制字符串表示形式。 |
|
|
将指定的字节子数组的每个元素的数值转换为它的等效十六进制字符串表示形式。 |
|
|
返回由字节数组中指定位置的两个字节转换来的 16 位无符号整数。 |
|
|
返回由字节数组中指定位置的四个字节转换来的 32 位无符号整数。 |
|
|
返回由字节数组中指定位置的八个字节转换来的 64 位无符号整数。 |
C#字节流通信格式的更多相关文章
- 中移物联网onenet入门学习笔记2:中移物联的通信格式
中移物联网硬件接入协议:LWM2M协议,EDP协议,MQTT协议,HTTP协议,TCP透传,MODBUS协议,JT/T808协议,RCMP协议 8种通信协议的区别在哪? 详细比较 EDP:OneNET ...
- Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制
Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制 JAVA 中原生的 socket 通信机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.co ...
- C51应用 Modbs Rtu协议实现与KEPServerEx 通信
最近一客户要求使用STC12C5A60S2实现Modbus Rtu协议与KEPServerEx V4.0软件通信,采集单片机P2口每位的状态,设置P0口每位的状态,实现三路AD转换其中一路采集的是C0 ...
- 【通信框架】Apache的开源通信框架thrift概述
在阅读的过程中有不论什么问题.欢迎一起交流 邮箱:1494713801@qq.com QQ:1494713801 一.作用 Thrift("Scalable Cross-Languag ...
- 【linux】U-BOOT与linux kernel通信: struct tag
欢迎转载,转载时需保留作者信息. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http://b ...
- LabVIEW上位机与串口通信
渊源 大一的时候,学校开了门公共选修课,叫LabVIEW编程,当时的我当然还不知道LabVIEW是啥东东,但还是选了.上课的老师是机械学院的一个副教授.他给我们展示了好几个用LabVIEW做的项目.譬 ...
- 通信—HTTP 协议入门(转载)
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等). HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于199 ...
- 【转】C# client 与java netty 服务端的简单通信,客户端采用Unity
http://blog.csdn.net/wilsonke/article/details/24721057 近日根据官方提供的通信例子自己写了一个关于Unity(C#)和后台通信的类,拿出来和大家分 ...
- WCF入门教程1——WCF简要介绍
什么是WCF Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了原有的windo ...
随机推荐
- .Net Core 发布异常 An assembly specified in the application
在Core 2.0站点发布时.. DotNet WW.kkkk.dll 报错..报文内容如下: Error: An assembly specified in the application depe ...
- (转)Asp.Net Mvc视图引擎Razor介绍
Asp.Net Mvc视图引擎Razor介绍 1.Razor介绍 程序园原创,转载请注明:http://www.kwstu.com/ArticleView/dabaomvc_2014082408205 ...
- [DPF] DB2 DPF 搭建实战
1. Server 准备 2. NFS 系统设置 3. 创建实例 4. rsh/ssh 5. 测试 Server: 192.168.122.1 dpf01.dpf.com dpf01 192.16 ...
- c#移位运算符("<<"及">>")详细说明
以前感觉移位运算符自己挺明白的,也许是学的时间长了,后来一看,忘得差不多了.现在参考一些网上的学习资料,将位移运算符整理一下,作为知识点总结,也算个积累.在讲移位运算符之前,先简单补充一下原码与补码的 ...
- Struts2 Servelet重构
这是利用action模仿请求Servelet(单例) 作用: 1.减少web.xml代码量 2.将servelet中的代码转移到action中,只需要在action中定义业务逻辑则可. 1.定义一个过 ...
- 关于docker的理解随记
1.容器其实不是什么新技术,说白了就是namespace对资源进行隔离,再加UFS实现分层镜像,以及cgroup实现资源限制.这些技术,都是linux中已有的技术,而且有些技术很早之前就有了. 2.上 ...
- Integer 与 int -- 自动装箱(autoboxing)与自动拆箱(unboxing)
转载于 http://www.ticmy.com/?p=110 jdk1.5引入了自动装箱(autoboxing)与自动拆箱(unboxing),这方便了集合类以及一些方法的调用,同时也使初学者对其感 ...
- Python(1):入门
安装: 在linux中一般都自带有python2.7的版本,如果想升级python到最新的版本可以参考其他博客(http://www.cnblogs.com/lanxuezaipiao/archive ...
- 控件--spinner(列表选项框)
1. 关键点 1). Spinner的菜单显示方式 它有两种显示形式,一种是下拉菜单,一种是弹出框,菜单显示形式是spinnerMode属性决定的: android:spinnerMode=" ...
- Linux下如何查看版本信息(转)
Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然. 1.# uname -a (Linux查看版本当前操作系统内核信息) L ...