一个跨平台的问题,搞笑
一个原来好好的网络程序,在另外一台LINUX机器上面重新编译后,运行很奇怪。总是无法解析网络数据。跟踪发现,取得的头部信息,都是错误的。
查了半天,最终发现,取得的头部信息,是原来的两倍长度!原来这个机器是64位CPU,头部信息里面,定义使用了
long型,32位下是4字节,64位下是8字节,导致长度加倍。更换了数据类型后,重新编译运行,正常了。
看来以后还得多注意这种跨平台的兼容性问题了。 我也遇到一个人写的MD5加密的,在32下没问题,在64位下就非操,后来一看才知道用了long,花了几个小时的时间;
页:
[1]