阅读:1133回复:3
会者不难---字节顺序转换
在驱动程序里--比如NDIS驱动里面,进行网络字节序到主机字节序(network byte order to host byte order) 的转换,应该使用哪个函数
也就是驱动中使用的类似winsock2里面的ntohs()、ntohl()函数 |
|
|
沙发#
发布于:2003-04-09 17:28
自己写阿
|
|
板凳#
发布于: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 |
|