0

我最近有一个非常奇怪的错误行为,我无法解释为什么会这样。我为自己编写了一个网络库(仍在进行中)。今天我的单元测试失败了,因为另一个应用程序正在使用这些端口。这是意料之中的,但它并没有像预期的那样失败。我正在查看的结果bind()是 0。

handle = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

sockaddr_in address;
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(port);
if (bind(handle, (const sockaddr*)&address, sizeof(sockaddr_in)) < 0)
{
    throw std::runtime_error("failed to bind socket");
}

(这是完整的代码。)

我的经验说bind(),如果它正在使用的端口会返回一个错误。我基本上错了吗?

有关详细信息,我们正在谈论 Windows 7 上的 winsock;使用 MinGW 构建。

4

1 回答 1

0

好的,我看到的问题不是绑定失败的一部分。很抱歉愚蠢地发布这个问题;但这让我发疯了..

尽管如此,netstat 说该端口正在使用中,尽管 TCP ...

于 2012-08-30T20:00:01.550 回答