原文链接: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);

最新文章

  1. SQL Tuning 基础概述05 - Oracle 索引类型及介绍
  2. appium过程中的问题
  3. 【入门】 jpa--实体管理器的基本应用
  4. JAVA_SE复习(异常)
  5. temorrow read
  6. Color the ball
  7. ButterKnife 绑定 RadioGroup
  8. Hadoop应用开发实战(flume应用开发、搜索引擎算法、Pipes、集群、PageRank算法)
  9. Error:Android Source Generator: [sdk] Android SDK is not specified.
  10. adb devices找不到设备解决办法
  11. 浅谈我的MongoDB学习(一)
  12. JDOM生成、解析XML实例
  13. MySQL之库相关操作
  14. Flutter 布局(五)- LimitedBox、Offstage、OverflowBox、SizedBox详解
  15. 如何在github上搭建一个免费的 无限流量的静态网页博客Github pages
  16. Centos7下关于系统用户密码规则-运维笔记
  17. 如何在js中将统计代码图标隐藏
  18. centos6安装opencv2
  19. 【Social Listening实战】当数据分析遭遇心理动力学:用户深层次的情感需求浮出水面
  20. git 学习小记

热门文章

  1. Finance财务软件(支持多账套专题)
  2. call与apply的区别与共同点
  3. 常见的SPA首屏优化方式
  4. jwt刷新token
  5. 5.docker安装redis
  6. java问题解答
  7. ABAP SmartForms开发脚本补丁
  8. opencv对图片画框写文字
  9. S32DS中链接文件及启动代码学习
  10. mysql 获取表信息 表备注等