Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1105174
  • 博文数量: 170
  • 博客积分: 1603
  • 博客等级: 上尉
  • 技术积分: 1897
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 15:54
文章分类

全部博文(170)

文章存档

2016年(27)

2015年(21)

2014年(27)

2013年(21)

2012年(7)

2011年(67)

我的朋友

分类: Python/Ruby

2013-06-03 11:25:57


点击(此处)折叠或打开

  1. print struct.calcsize('@HIHIIH65sII')
  2. print struct.calcsize('!HIHIIH65sII')
  3. print struct.calcsize('>HIHIIH65sII')
  4. print struct.calcsize(')

上面的代码在我 i7 870(windows 7 64位)的机器上输出是
96
91
91
91

之前我以为我pack后不是大端就是小端,后来发包服务器一直不接受,找半天没发现我这有什么问题......
我指定大端发去的不对,我以为不指定大端就是小端,结果发过去还不对
今天才发现不指定大小端会有这种问题!!!!!所以以后无论大小端都要指定一次- - orz
不然pack以后c结构的大小会导致问题

Character Byte order Size and alignment
@ native native
= native standard
< little-endian standard
> big-endian standard
! network (= big-endian) standard

指定大端和小端后size那里才是standard(标准),不然的话可能会因为本地机器导致改变c结构的size
阅读(3773) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~