类似通信格式的实现关键点:

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

拓展:

float型数据与字节数组的转化

在c#中可以使用BitConverter类中的函数进行转换,如下:

名称

说明

GetBytes(Double)

以字节数组的形式返回指定的双精度浮点值。

GetBytes(Single)

以字节数组的形式返回指定的单精度浮点值。

ToDouble

返回由字节数组中指定位置的八个字节转换来的双精度浮点数。

ToSingle

返回由字节数组中指定位置的四个字节转换来的单精度浮点数。

BitConverter类进行基础数据类型与字节数组之间的相互转换,此类便于操作基本形式的类型。一个字节定义为一个 8位无符号整数。包含的方法如下:

名称

说明

DoubleToInt64Bits

将指定的双精度浮点数转换为 64 位有符号整数。

GetBytes(Boolean)

以字节数组的形式返回指定的布尔值。

GetBytes(Char)

以字节数组的形式返回指定的 Unicode 字符值。

GetBytes(Double)

以字节数组的形式返回指定的双精度浮点值。

GetBytes(Int16)

以字节数组的形式返回指定的 16 位有符号整数值。

GetBytes(Int32)

以字节数组的形式返回指定的 32 位有符号整数值。

GetBytes(Int64)

以字节数组的形式返回指定的 64 位有符号整数值。

GetBytes(Single)

以字节数组的形式返回指定的单精度浮点值。

GetBytes(UInt16)

以字节数组的形式返回指定的 16 位无符号整数值。

GetBytes(UInt32)

以字节数组的形式返回指定的 32 位无符号整数值。

GetBytes(UInt64)

以字节数组的形式返回指定的 64 位无符号整数值。

Int64BitsToDouble

将指定的 64 位有符号整数转换成双精度浮点数。

ToBoolean

返回由字节数组中指定位置的一个字节转换来的布尔值。

ToChar

返回由字节数组中指定位置的两个字节转换来的 Unicode 字符。

ToDouble

返回由字节数组中指定位置的八个字节转换来的双精度浮点数。

ToInt16

返回由字节数组中指定位置的两个字节转换来的 16 位有符号整数。

ToInt32

返回由字节数组中指定位置的四个字节转换来的 32 位有符号整数。

ToInt64

返回由字节数组中指定位置的八个字节转换来的 64 位有符号整数。

ToSingle

返回由字节数组中指定位置的四个字节转换来的单精度浮点数。

ToString( array<Byte []()>[])

将指定的字节数组的每个元素的数值转换为它的等效十六进制字符串表示形式。

ToString( array<Byte []()>[], Int32)

将指定的字节子数组的每个元素的数值转换为它的等效十六进制字符串表示形式。

ToString( array<Byte []()>[], Int32, Int32)

将指定的字节子数组的每个元素的数值转换为它的等效十六进制字符串表示形式。

ToUInt16

返回由字节数组中指定位置的两个字节转换来的 16 位无符号整数。

ToUInt32

返回由字节数组中指定位置的四个字节转换来的 32 位无符号整数。

ToUInt64

返回由字节数组中指定位置的八个字节转换来的 64 位无符号整数。

C#字节流通信格式的更多相关文章

  1. 中移物联网onenet入门学习笔记2:中移物联的通信格式

    中移物联网硬件接入协议:LWM2M协议,EDP协议,MQTT协议,HTTP协议,TCP透传,MODBUS协议,JT/T808协议,RCMP协议 8种通信协议的区别在哪? 详细比较 EDP:OneNET ...

  2. Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制

    Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制 JAVA 中原生的 socket 通信机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.co ...

  3. C51应用 Modbs Rtu协议实现与KEPServerEx 通信

    最近一客户要求使用STC12C5A60S2实现Modbus Rtu协议与KEPServerEx V4.0软件通信,采集单片机P2口每位的状态,设置P0口每位的状态,实现三路AD转换其中一路采集的是C0 ...

  4. 【通信框架】Apache的开源通信框架thrift概述

    在阅读的过程中有不论什么问题.欢迎一起交流 邮箱:1494713801@qq.com    QQ:1494713801 一.作用 Thrift("Scalable Cross-Languag ...

  5. 【linux】U-BOOT与linux kernel通信: struct tag

      欢迎转载,转载时需保留作者信息. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http://b ...

  6. LabVIEW上位机与串口通信

    渊源 大一的时候,学校开了门公共选修课,叫LabVIEW编程,当时的我当然还不知道LabVIEW是啥东东,但还是选了.上课的老师是机械学院的一个副教授.他给我们展示了好几个用LabVIEW做的项目.譬 ...

  7. 通信—HTTP 协议入门(转载)

    HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等). HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于199 ...

  8. 【转】C# client 与java netty 服务端的简单通信,客户端采用Unity

    http://blog.csdn.net/wilsonke/article/details/24721057 近日根据官方提供的通信例子自己写了一个关于Unity(C#)和后台通信的类,拿出来和大家分 ...

  9. WCF入门教程1——WCF简要介绍

    什么是WCF Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了原有的windo ...

随机推荐

  1. Sublime Text 3安装插件(Mac 10.12)

    1.先安装Package Control,默认这个是没有安装的. 使用[control + -]打开控制台,输入以下代码: import urllib.request,os; pf = 'Packag ...

  2. (转)Memcached 之 .NET(C#)实例分析

    一:Memcached的安装 step1. 下载memcache(http://jehiah.cz/projects/memcached-win32)的windows稳定版(这里我下载了memcach ...

  3. Java源码安全审查

    最近业务需要出一份Java Web应用源码安全审查报告, 对比了市面上数种工具及其分析结果, 基于结果总结了一份规则库. 本文目录结构如下: 检测工具 FindSecurityBugs 基于class ...

  4. Java Inner Class 内部类

    内部类  Inner Class 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分. Java中的内部类共分为四种: 静态内部类static inner class ( ...

  5. SQL语句映射文件(1)resultMap

    SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: ...

  6. mysql在查询结果列表前添加一列递增的序号列(最简)

    SELECT @rownum:=@rownum+1 AS 序号, t_user.* FROM  t_user ,(SELECT @rownum:=0) r  -- 最简写法1 更多写法供参考: ①   ...

  7. iOS傻金币动画

    项目要做一个撒金币签到的动画,分享出来 金币.zip,其中有几个做的时候注意的点. 1.金币掉入口袋的过程,有入口袋的效果. 开始做的时候直接把金币添加到底部的View上这样入口袋的时候,口袋里边显示 ...

  8. [转]玩转Windows服务系列——命令行管理Windows服务

    本文转自:http://www.cnblogs.com/hbccdf/p/managewindowsservicewithcmd.html 说到Windows服务的管理就不得不说通过命令行的方式管理W ...

  9. VS2013漂亮字体

    使用字体:Fixedsys Excelsior 3.011.首先下载字体:http://www.fixedsysexcelsior.com/ 2.安装字体:控制面板 -> 字体,复制下载的文件进 ...

  10. [linux] C语言Linux系统编程进程基本概念

    1.如果说文件是unix系统最重要的抽象概念,那么进程仅次于文件.进程是执行中的目标代码:活动的.生存的.运行的程序. 除了目标代码进程还包含数据.资源.状态以及虚拟化的计算机. 2.进程体系: 每一 ...