2012-08-30 47 views
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一起建造。

回答

0

好吧,我看到的問題不是綁定失敗的一部分。對不起,愚蠢地發佈這個問題;但它被我逼瘋..

不過netstat的說,港口是在使用中,雖然TCP ...

+0

一個端口可以獨立通過TCP和UDP在同一時間,而不互相干擾使用。 –

+0

確實如此。我沒有想到這一點。這就是我第一次誤導的原因。 – rioki