登录站点

用户名

密码

网络通信时整型数据与字节之间的转换

已有 749 次阅读  2010-09-29 21:33   标签网络  整型  字节  数据  通信 

 网络通信时整型数据与字节之间的转换 

在进行socket通信时,常常需要传输某个变量值的长度,比如一个注册包有名字,地址等信息。在进行包的封装定义时,一般是以nameLength+name+addressLength+address形式封装。而无线网络传输是按字节流传输的,这就要求对整形数据进行转换。一个字节表示的整数最大范围是2的7次幂,所以大整数需要转换成2个字节。下面是转换的函数:

客户端:

public byte  intToOneByte(int n)
 {
  return ((byte)(n & 0x000000ff));
 }


 public byte[] intToTwoBytes(int n)
 {
  byte[] ret= new byte[2];
  ret[0] = (byte)((n>>8) & 0x000000ff);
  ret[1] = (byte)(n & 0x000000ff);
  return ret;
 }

服务器端:

 public int byteToInt(byte bt)
 {
  return ((int)bt);
 }
 
 /**
  * @param bt:2 elements in byteArray.
  * @return
  */
 public int byteArrayToInt(byte[] bt)
 {
  return (int)((bt[0]<<8) | bt[1]);
 }

上一篇: 用skinmagic给VC6开发的软件换肤 下一篇: SOCKET的广播通信方法

分享 举报