你这个结构体比较大. 有可能是在 socket 层被自动分包了.所以接受到的数据不对.如果你sleep()一下.就等于等待数据接收完毕.所以数据又对了.你在recv 的时候有判断返回值是否正确吗.
结构体对齐的问题, 对齐了就不会有问题了。在结构体后面加上 __attribute__ ((packed)) 。