在Windows中的sockaddr_in中填写sin_zero

时间:2015-02-01 10:36:16

标签: windows assembly

在x86堆栈中,我不需要在符合POSIX的架构中用2“push 0”填充sin_zero。但我必须在Windows中吗?

struct sockaddr_in {
    short            sin_family;   // e.g. AF_INET, AF_INET6
    unsigned short   sin_port;     // e.g. htons(3490)
    struct in_addr   sin_addr;     // see struct in_addr, below
    char             sin_zero[8];  // zero this if you want to
}; 

1 个答案:

答案 0 :(得分:0)

通常,建议将sin_zero实际为零。

正式地,标准并不需要它,但是一些sources声称没有归零会导致某些体系结构上的不确定行为。我自己在项目中也观察到了一些东西。

此外,WinAPI文档提到了有关sin_zero的以下内容:

  

保留供系统使用。 WSK应用程序应设置以下内容:   该数组为零。

question中的更多信息。

相关问题