我正在使用C套接字編寫客戶端/服務器程序。我指定服務器可以通過在sockaddr_in.sin_addr.s_addr中使用INADDR_ANY來監聽任何網絡接口。這相當於IP爲0.0.0.0。我能否獲得服務器正在監聽的實際IP? (例如192.168.1.100)C爲監聽服務器獲取IP
回答
我希望你不需要IPv6支持,因爲這不適用於IPv6。 – 2012-04-06 11:30:52
不,我不知道。但如果你解釋爲什麼它不合適,它可能會幫助那些做的人。我認爲使用的函數調用具有與IPv6相當的功能。 – Gigi 2012-04-06 11:51:43
'getaddrinfo'函數([linux文檔](http://linux.about.com/library/cmd/blcmdl3_getaddrinfo.htm),[Windows文檔](http://msdn.microsoft.com/en-us/ library/windows/desktop/ms738520(v = vs.85).aspx))可以識別IPv6並執行相同的功能。 – 2012-04-06 12:31:43
將偵聽套接字綁定到INADDR_ANY
時,套接字會偵聽所有可用的本地IP。沒有辦法從套接字確定它正在監聽的IP地址。如果您需要這些信息,則必須單獨列舉本地IP(如果您需要檢索預先接受綁定的詳細信息,則可以單獨將每個IP分別輸入bind()
)。但是,一旦accept()
已返回已建立的客戶端連接,您可以在接受的套接字上使用getsockname()
來知道哪個特定的IP接受了連接。
- 1. C#套接字監聽器(服務器)
- 2. 如何爲MSMQ創建C#監聽器服務作爲Windows服務
- 3. Android服務器請求監聽器
- 4. Yesod開發服務器只監聽ipv6
- 5. Android Intent服務的位置監聽器
- 6. 獲取服務器IP地址
- 7. 獲取DNS服務器IP上IPhone
- 8. ASP.NET - 獲取服務器本地IP
- 9. 獲取IP地址當前服務器
- 10. 如何獲取服務器IP地址?
- 11. 從服務器獲取服務器文件夾IP
- 12. 爲服務器套接字響應創建監聽器?
- 13. 獲取事件監聽器數組
- 14. 在文檔監聽器中獲取JTextField
- 15. C#中soap消息的Web服務監聽器
- 16. 提取服務器IP
- 17. 如何獲取響應WebResponse的服務器的IP地址C#
- 18. 反應本地:如何取消註冊監聽器/服務?
- 19. MATLAB監聽TCP/IP端口
- 20. 如何在運行時獲取weblogic管理的服務器監聽端口?
- 21. 句柄C#監聽器
- 22. c#propertyGrid鍵監聽器
- 23. 如何使用Rails獲取客戶端IP和服務器IP
- 24. 服務器監聽localhost:8080 Apache是否仍然可以監聽端口80?
- 25. 如何編寫一個連續監聽服務器作爲服務
- 26. Xamarin C#監聽
- 27. C中用於服務器監聽功能的測試單元。避免監聽阻止呼叫
- 28. 在服務器端獲取本地IP地址的非服務器端方法?
- 29. 在服務器端,獲取客戶端連接的服務器IP
- 30. Web服務 - 沒有端點監聽
連接建立之前還是之後?服務器可能正在監聽幾個地址。 – blueshift 2012-03-25 13:18:00
之前。就我而言,我只會擁有一個IP。只是讓系統決定。但我仍然想知道它的決定。 – Gigi 2012-03-25 13:19:24
服務器將偵聽可用的* all *接口。即使一個接口可能有多個IP地址。 – 2012-03-25 13:25:43