我最近有一个非常奇怪的错误行为,我无法解释为什么会这样。我为自己写了一个网络库(仍在进行中)。今天我的单元测试失败,因为其他应用程序使用了端口。这是预期的,但它确实不失败。我正在查看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");
}
(这是full code。)
我的经验是bind()
如果使用它的端口将返回错误。我基本上错了吗?
有关详细信息,我们在谈论Windows 7上的winsock;用MinGW构建。
答案 0 :(得分:0)
好的,我看到的问题不是绑定失败的一部分。很抱歉愚蠢地发布了这个问题;但它让我疯了..
尽管如此,netstat表示该端口正在使用,但TCP ......