2016-08-04 57 views
0

那爲什麼當我們做一個客戶端編程',我們通過我們要連接到喜歡這個主機的IP:關於通過IP來有sockaddr_in結構

their_addr.sin_addr = *((struct in_addr *)he->h_addr); 

但這不起作用:

their_addr.sin_addr.s_addr = inet_addr("192.168.1.3"); 

,但是當我們做一個服務器程序,這個工程:

local_addr.sin_addr.s_addr=INADDR_ANY; 
+0

歡迎來到StackOverflow。 'h_addr'的例子是當你使用'gethostbyname()'(不推薦使用''getaddrinfo()')來動態查找一個主機名的IP地址。 'inet_addr()'示例也可以正常工作。 'sin_addr.s_addr'被聲明爲一個32位的'in_addr_t'或'ulong'(取決於平臺),以網絡字節順序表示,'inet_addr()'返回這樣一個值,只要它的輸入字符串表示爲有效點IPv4地址(這是你的例子)。如果遇到問題,請提供[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –

回答

0

當你創建你想連接到特定服務器的客戶端。

當您製作服務器時,您(通常)想要通過所有本地IP地址接受連接。

這種情況沒有可比性。