2

errno==49 (EADDRNOTAVAIL)在尝试 UDPbind()到 127.0.0.1:47346 在 G5(大端 PowerPC)上运行 Mac OS X 时遇到了问题。有什么东西阻止我这样做吗?我尝试了其他地址和端口(192.168.1.2 和端口 47346)但没有成功。

这是我的 sockaddr_in 的 gdb 打印输出:

$1 = {
  sin_len = 0 '\0', 
  sin_family = 2 '\002', 
  sin_port = 47346, 
  sin_addr = {
    s_addr = 3232235778
  }, 
  sin_zero = "???\000\000??"
}
4

1 回答 1

8

您也应该填写 sin_len 字段(使用 sizeof(struct sockaddr_in),这应该可以解决问题)。该字段不是在每个平台上都出现,但在它存在的地方,必须填写。

此外,请务必在使用之前将结构清零(但显然您似乎还是这样做了)。

于 2010-02-11T12:56:07.093 回答