關於socket通訊bind()返回值錯誤:10049

這個問題,我差點和客戶吵起來了。個人電腦確實沒有問題,客戶電腦卻會常常出現,。今天查了下,竟然是這種問題,大意了,在這裏記錄下。服務器

服務器端程序開啓的時候老是提示:bind錯誤,用WSAGetLastError()獲取錯誤類型爲10049。函數

 memset(&server_addr,0,sizeof(server_addr));
 server_addr.sin_family = AF_INET;
 server_addr.sin_port =htons(7000);
 server_addr.sin_addr.s_addr=inet_addr(INADDR_ANY);spa

10049 的意思是這樣的。server

1 0 0 4 9 —W S A E A D D R N O TAVA I L
不能分配請求的地址。A P I 調用中指定的地址對那個函數來講無效時,就會產生這樣的錯誤。例如,若在b i n d 調用中指定一個I P 地址,但卻沒有對應的本地I P 接口,便會產生這樣的錯誤。另外,經過c o n n e c t 、W S A C o n n e c t 、s e n d t o 、W S A S e n d To 和W S A J o i n L e a f 這四個函數爲 準備鏈接的遠程計算機指定端口0 時,也會產生這樣的錯誤
xml

最後通過一個網友的指點,接口

服務端是不可以用INADDR_ANY的  由於這個表示是主機上任意的地址,可是你還不知道服務器端的IP地址,你怎麼找到服務器? 因此這裏應該把INADDR_ANY設置爲一個真正的IP地址,   INADDR_ANY只能用於發送端(就是說,我要發送某個東西,能夠採用個人任意的IP,而接受的IP必須是一個咱們能找到它的位置的IP)ast

完美解決,大喜。服務器端

 

2017/8/18 我如今以爲出現這個問題的緣由會不會是上網卡的緣由。請求

相關文章
相關標籤/搜索