原文链接:http://hi.baidu.com/endyli/item/7bf074945de35e1f934f41fe

来源:

NDC(NetworkDiskClient)的界面和后台程序之间用Socket通信,发送命令。

环境:界面:C# winform

后台:Vc++,消息通知

  网络通信,C#是通过网络字节流进行传输的,传输内容是有报文头的Protobuf。Net消息。报文头是struct结构体,先转化成 byte[],protobuf消息就先转换为内存流,再stream.ToArray[]转化为字节数组,就可以由Socket传输。

字符串string和内存流MemoryStream及比特数组byte[]互转比较

定义string变量为str,内存流变量为ms,比特数组为bt

1.字符串转比特数组

(1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串");

(2)byte[] bt=Convert.FromBase64String("字符串");

2.字符串转流

(1)MemoryStream ms=new MemoryStream(System.Text.Encoding.Default.GetBytes("字符串"));

(2)MemoryStream ms=new MemoryStream(Convert.FromBase64String("字符串"));

3.流转比特数组

(1)byte[] bt=ms.ToArray();

(2)MemoryStream ms=new MemoryStream();ms.Write(bt,0,ms.Length);

4.流转字符串

(1)string str=Convert.ToBase64String(ms.ToArray());

(2)string str=System.Text.Encoding.Default.GetString(ms.ToArray());

5.比特数组转字符串

(1)string str=System.Text.Encoding.Default.GetString(bt);

(2)string str=Convert.ToBase64String(bt);

6.比特数组转流

(1)MemoryStream ms=new MemoryStream(bt);

(2)MemoryStream ms=new MemoryStream();ms.Read(bt,0,bt.Lenght);

C#中字符数组,字节数组和string之间的转化(转)的更多相关文章

  1. java字符数组char[]和字符串String之间的转换

    java字符数组char[]和字符串String之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 使用String.valueOf()将字符数组转换成字符串 void (){ cha ...

  2. DB2中字符、数字和日期类型之间的转换

    DB2中字符.数字和日期类型之间的转换 一般我们在使用DB2或Oracle的过程中,经常会在数字<->字符<->日期三种类 型之间做转换,那么在DB2和Oracle中,他们分别 ...

  3. Java中InputStream和String之间的转化

    https://blog.csdn.net/lmy86263/article/details/60479350 在Java中InputStream和String之间的转化十分普遍,本文主要是总结一下转 ...

  4. C#中char[]与string之间的转换;byte[]与string之间的转化

    目录 1.char[]与string之间的转换 2.byte[]与string之间的转化 1.char[]与string之间的转换 //string 转换成 Char[] string str=&qu ...

  5. C#中字符数组,字节数组和string之间的转化

    转自:http://blog.csdn.net/wangxiaoqin00007/article/details/17675419 NDC(NetworkDiskClient)的界面和后台程序之间用S ...

  6. Java中文件与字节数组转换

    注:来源于JavaEye 文件转化为字节数组: http://www.javaeye.com/topic/304980 /** * 文件转化为字节数组 * * @param file * @retur ...

  7. C# 字符串到字节数组,字节数组转整型

    ; , ); byte[] bytes = BitConverter.GetBytes(num);//将int32转换为字节数组 num = BitConverter.ToInt32(bytes, ) ...

  8. php中字符与字节的区别

    字符: 字符是可使用多种不同字符方案或代码页来表示的抽象实体.例如,Unicode UTF-16 编码将字符表示为 16 位整数序列,而 Unicode UTF-8 编码则将相同的字符表示为 8 位字 ...

  9. byte[] 数组和字符串的转换,与byte[] 数组和int类型的之间的转化

    我们先来看看byte bool  int ushort  等的定义 首先时byte[]数组与string之间的转换 string 转换位byte[] 数组 string str = "1-1 ...

  10. java中字符与字节的编码关系

    在 GB 2312 编码或 GBK 编码中,一个英文字母字符存储需要1个字节,一个汉字字符存储需要2个字节. 在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节. ...

随机推荐

  1. Oracle 临时表空间暴满的原因与解决方法

    Oracle临时表空间主要用来做查询和存放一些缓冲区数据.临时表空间消耗的主要原因是需要对查询的中间结果进行排序. 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,te ...

  2. VUE中如何使用MOCK

    安装mockjs npm install mockjs 可以使用数据模板生成模拟数据. Mock.mock( rurl?, rtype?, template ) ) // 或者 Mock.mock( ...

  3. 开发谷歌插件--web3钱包(一)

    之前开发了一款谷歌插件,因为很简单没有什么好记录的. 这次记录下一款新的钱包功能的插件,其中遇到的问题,以及解决方案. 首先遇到的问题就是唤醒: 小狐狸钱包应该都用过,点击图标就会唤起登录页面(pop ...

  4. mysql5.7主从多线程同步

    数据库复制的主要性能问题就是数据延时 为了优化复制性能,Mysql 5.6 引入了 "多线程复制" 这个新功能 但 5.6 中的每个线程只能处理一个数据库,所以如果只有一个数据库, ...

  5. gitee提交过程

    https://gitee.com/ 一个线上代码云端软件开发协作平台 首先注册一个账号 然后添加新的仓库 仓库名称和路径是必填项 然后创建项目 选择  克隆存储数据库 存储库位置是网站获取的git位 ...

  6. git和coding的使用

    1.注册 coding ::::::https://coding.net/ 2.个人设置中添加上邮箱账号和密码 3.下载git 4.在coding中新建项目,并对项目初始化---生成分支,会生成url ...

  7. HDOJ--1010题C++

    有两点需要注意,第一点就是,题意是指在第T秒时门才打开,并不是越早到门口就能越早出去,而是只要存在指定长的路径即可以出去. 第二点,每次深搜发现答案不符都必须将点重新初始化.#include<i ...

  8. WEB攻击与防御技术 pikachu——XSS攻击加CSRF

    一.反射性xss(get) 登录pikachu选择xss模块,第一题,写了一下,发现输入长度不够,很简单,在前端改一下长度就可以使用了,这题就不做过多解释 或者直接在URL中进行写入,也是肥肠滴方便 ...

  9. MFC学习记录2

    一.建立基于对话框工程,改变UI对象 1.改变菜单.工具栏 在资源栏中编辑菜单.工具栏,注意ID 编辑ID [Pen/Thick Line] ID : ID_PEN_THICK_OR_THIN pro ...

  10. plsql链接oracle

    安装两个oracle文件夹在一个database中,安装plsql 要先配置两个都要修改,不然会找不到服务器 管理员运行  监听服务/监听位置和数据库服务都要修改 ass文件---监听程序配置 和本场 ...