2011-12-19 60 views
1

如果我寫了一個服務器綁定到通配符地址(INADDR_ANY),如何確定客戶端連接到哪個IP地址?如何確定接受後哪個IP地址正在使用?

我嘗試下面的代碼,當成功後接受呼叫,但它只是返回0.0.0.0。

inet_ntop(AF_INET, &server_address.sin_addr, s, sizeof(s)); 
+0

的可能重複的[如何確定由客戶端連接到INADDR_ANY用C聽者插座使用的IP(http://stackoverflow.com/questions/3047704/how-to-determine-ip-used-by-client-connecting -to-inaddr-任何偵聽器插座中-c)的 – Jacob 2011-12-19 21:49:59

回答

0

的接受系統調用將具有結構類型的sockaddr_in或結構的sockaddr_in6的一個地址。

客戶端地址將被存儲在那裏。

您可以使用INET_NTOA,或inet_ntop得到它。