`
weizhai12
  • 浏览: 145499 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

socket通讯中需要用到的一些数据类型转换的方法

阅读更多

在上次做的项目中,使用到了Socket进行数据通讯,其中用到了一些数据类型进行转换的方法,现在

贴出来给大家分享下,希望大家多给些意见,能进一步帮忙完善更好了,先谢过了。

/// <summary>
/// 整数转为Byte【】
/// 低位在前,高位在后
/// </summary>
/// <param name="r">要转换的整数</param>
/// <param name="digits">Byte位数</param>
/// <returns></returns>
private static byte[] GetBytesFromInt(int r, int digits)
{
byte[] bt = new byte[digits];
int j=8;
for (int k = 0; k < digits; k++)
{
j=8*k;
bt[k]=(byte)(r>>j);
}
return bt;
}

/// <summary>
/// 将字符转换为Byte数组
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
private static byte[] GetBytesFromStr(string s)
{
byte[] bt = Encoding.UTF8.GetBytes(s);
return bt;
}
/// <summary>
/// 计算字符传编码时的字节长度
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
private static int GetBytesLengthFromStr(string s)
{
int iLength = Encoding.UTF8.GetByteCount(s);
return iLength;
}

/// <summary>
/// 将Byte数组转化为Int16
/// </summary>
/// <param name="bt"></param>
/// <param name="index"></param>
/// <returns></returns>
private static Int16 GetInt16FromBytes(byte[] bt)
{
Int16 s = BitConverter.ToInt16(bt,0);
return s;
}

/// <summary>
/// 将Byte数组转化为Int32
/// </summary>
/// <param name="bt"></param>
/// <param name="index"></param>
/// <returns></returns>
private static int GetIntFromBytes(byte[] bt)
{
int s = BitConverter.ToInt32(bt, 0);
return s;
}

/// <summary>
/// 将Byte数组转化为String
/// </summary>
/// <param name="bt"></param>
/// <param name="index"></param>
/// <returns></returns>
private static string GetStrFromBytes(byte[] bt)
{
string s = BitConverter.ToString(bt, 0);
return s;
}

分享到:
评论

相关推荐

    C#中结构体定义并转换字节数组详解

    最近的项目在做socket通信报文解析的时候,用到了结构体与字节数组的转换;由于客户端采用C++开发,服务端采用C#开发,所以双方必须保证各自定义结构体成员类型和长度一致才能保证报文解析的正确性,这一点非常重要...

    网上购物系统(软件实习课程设计)

    本设计的目的是使参与设计者掌握利用软件工程的思想方法和TCP/IP设计出用于不同行业和部门间的通讯转发或协议转换软件—中间件,尤其掌握这种设计的思想和方法。 在很多场合中间件部分是必须的,因为在不同的行业的...

    java面试宝典

    53、数据类型之间的转换: 14 54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    c# 加密和解密相关代码

    Convert 类的ToChar 方法用来将指定的值转换为Unicode 字符,该方法为可重载方法,本实例中用到的它 的重载形式如下: public static char ToChar(int value) 参数说明 value:32 位有符号整数。 返回值:等效于...

    千方百计笔试题大全

    53、数据类型之间的转换: 14 54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,...

    VC学习大纲 VC学习讲义

    如何利用命名互斥保证只有一份程序实例被运行,结合多线程,网络编程,自定义消息,数据类型转换,如何改变文本框对回车的默认处理方式等技术编写网络聊天程序。 第十八课: 动态连接库程序的编写,库函数的两种输出...

    JAVA面试题最全集

    数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字转换为字符 如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何...

    易语言程序免安装版下载

     静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别...

    wpe pro英文原版 M2M sniff 修改封包工具

    由于在计算机中数据是以二进制的方式储存的,同时16进制数和二进制间的转换关系十分简单,所以大部分的修改工具在显示计算机中的数据时会显示16进制的代码,而且在你修改时也需要输入16进制的数字。你清楚了吧? ...

    linux programming instances网络编程教程 附源代码

    全书由13章组成,内容涉及到Lindx系统编程基础、TCP/UDP协议、套接字编程概念及I/O模型、高级编程中需要用到的进程问通信同步、多路复用、多线程编程和一些高级套接字控制方法、IPv6介绍以及网络安全等。...

    java面试题

    传统的类型转换。 49 66.1.2. 通过Class对象来获取对象的类型。 49 66.1.3. 通过关键字instanceof或Class.isInstance()方法 49 67. 说出一些常用的类,包,接口,请各举5个 50 68. XML文档定义有几种形式?它们之间...

    C语言FAQ 常见问题列表

    o 3.4 在 C 语言中实现抽象数据类型什么方法最好? o 3.5 在 C 中是否有模拟继承等面向对象程序设计特性的好方法? o 3.6 我遇到这样声明结构的代码: struct name { int namelen; char namestr[1];}; 然后又使用...

    openssl-1.0.0a

    加密的过程需要用到密钥来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密钥要用一个安全的方法传送。加密过的数据可以公开地传送。 2.数据的一致性 加密也能保证数据的一致性。例如:...

    你必须知道的495个C语言问题

    1.8 如何在C中实现不透明(抽象)数据类型? 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型...

    java源码包2

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    《你必须知道的495个C语言问题》

    1.8 如何在C中实现不透明(抽象)数据类型? 5 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态(static)函数或变量的所有声明都必须包含static...

Global site tag (gtag.js) - Google Analytics