0
我最近有一個非常奇怪的錯誤行爲,我不能解釋爲什麼是這種情況。我爲自己寫了一個網絡庫(仍在進行中)。今天我的單元測試失敗了,因爲其他應用程序已經使用了端口。這是可以預料的,但它確實如預期的那樣失敗了而不是。我在看的bind()
的結果,那就是0Winsock綁定不綁定端口上的失敗
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一起建造。
一個端口可以獨立通過TCP和UDP在同一時間,而不互相干擾使用。 –
確實如此。我沒有想到這一點。這就是我第一次誤導的原因。 – rioki