kaput
驱动中牛
驱动中牛
  • 注册日期2002-06-26
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1040回复:3

会者不难---字节顺序转换

楼主#
更多 发布于:2003-04-09 16:59
在驱动程序里--比如NDIS驱动里面,进行网络字节序到主机字节序(network byte order to host byte order) 的转换,应该使用哪个函数

也就是驱动中使用的类似winsock2里面的ntohs()、ntohl()函数
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉......
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
沙发#
发布于:2003-04-09 17:28
自己写阿
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2003-04-09 17:29
u_long htonl( u_long l )
{
u_long t = l;
char * ptr = ( char * )&t;
char c;

c = ptr[0];
ptr[0] = ptr[3];
ptr[3] = c;

c = ptr[1];
ptr[1] = ptr[2];
ptr[2] = c;

return t;
}

u_short htons( u_short s )
{
u_short t = s;
char * ptr = ( char * )&t;
char c;

c = ptr[0];
ptr[0] = ptr[1];
ptr[1] = c;

return t;
}
地板#
发布于:2003-04-09 17:34
呵呵!就是大头在前还是在后的问题嘛!
你只要在VC的环境下以十六进制看一下转换前和后的不同就知道啦!
例如一个long的0x12345678 转换之后就是 0x78563412了,同样的对ushort也是的0x1234->0x3412
游客

返回顶部