当我尝试通过TCP将数据从Linux客户端发送到服务器时,我看到额外的零被添加到数据中。任何人都可以让我知道为什么我得到这些额外的零?请参阅下面的数据包格式。
#define INT32 int32_t
#define UCHAR unsigned char
#define UINT8 u_int8_t
typedef struct cstruct_t {
UINT8 typ;
UINT8 l;
unsigned char buf[20];
} cksum_t;
cstruct_t cs;
INT32 fnlength;
答案 0 :(得分:2)
Linux套接字传输正在添加额外的零填充
不,当然不是。你可能没有正确阅读它。伦敦到一块砖,你忽略了recv()
返回的值。
但您不应该首先使用struct
作为网络协议。
答案 1 :(得分:0)
因为我们想要添加额外的零以使其长度为4字节,如@Soren所提到的那样我们使用
#pragma pack(push, 1)
#pragma pack(pop)
这对我们来说非常有效。