2008年05月26日 星期一 12:29
今天一上午调了一个网络程序,数据包中带有时间戳,我是用time_t来表示的
client用的是winxp + vc8
server用的是linux + gcc
总是在包的持久化和反持久化出问题,原因在于:
gcc中
typedef long time_t;
vc中
typedef __int64 time_t;
一个是4字节,一个是8字节,当然持久化和反持久化的时候对不上号
将time_t全部用long替换,问题解决
错误定位到包的持久化和反持久就花了几个小时,惨痛的教训啊,以后对于不同编译器的typedef也要注意了,看看是不是一样的.
今天一上午调了一个网络程序,数据包中带有时间戳,我是用time_t来表示的
client用的是winxp + vc8
server用的是linux + gcc
总是在包的持久化和反持久化出问题,原因在于:
gcc中
typedef long time_t;
vc中
typedef __int64 time_t;
一个是4字节,一个是8字节,当然持久化和反持久化的时候对不上号
将time_t全部用long替换,问题解决
错误定位到包的持久化和反持久就花了几个小时,惨痛的教训啊,以后对于不同编译器的typedef也要注意了,看看是不是一样的.