我使用127.0.0.1和port#創建一個c#套接字。現在我創建一個本地客戶端(與服務器在同一臺機器上本地運行)並嘗試使用機器的fqdn進行連接。它不起作用。如果我使用127.0.0.1而不是fqdn作爲客戶端,它就可以工作。 反之亦然,如果我使用本地機器的fqdn和端口#創建服務器,並且客戶機使用127.0.0.1,則不起作用。如果我在客戶端使用fqdn,那麼事情就會起作用。這讓我想到機器自己的IP地址/ fqdn和127.0.0.1之間有什麼區別,因爲我在印象之下他們都會引用同一臺機器。是127.0.0.1與IP地址不同嗎?
在C#UdpClient的情況下,我們只指定端口#。那麼c#如何處理這個問題呢?
如果一臺機器有多個網卡,並且我們只是指定端口#(例如UdpClient),那麼使用什麼網卡來創建端口?
回答
- 您的客戶端解決這可能指向另一個接口,而不是回送的FQDN。他們將推薦人引向同一臺機器,但他們是不同的接口。
- According to MSDN,
UdpClient
將在「默認界面」上偵聽 - 再次,無論微軟定義爲「默認界面」。實際上,這意味着如果你在一個IP地址上收聽,你只會獲得該IP的流量限制。
感謝您的回答! – user2574953
IP地址127.0.0.1
是每臺計算機上存在的本地環回虛擬網絡適配器的地址。此虛擬適配器完全位於操作系統內部,無法從其他位置連接。在同一臺機器上運行的程序可以相互通信,但沒有別的。
當您使用FQDN連接到計算機時,該名稱將解析爲屬於該名稱的IP地址,通常是附加到外部網絡適配器的地址。假設你的計算機的網絡地址是192.168.0.2
。當您嘗試連接到該地址的任何端口時,它將不會連接到偵聽127.0.0.1
的程序,而不會連接到偵聽地址192.168.0.3
的其他計算機上的永不。
地址很重要。
如果您希望程序接受連接到計算機的任何網絡適配器上的連接,請將其綁定到,每地址:0.0.0.0
。
感謝您的回答!所以看起來像0.0.0.0不包括127.0.0.1?我寫了一個小程序來驗證。 – user2574953
不,聽'0.0.0.0'應該接受所有地址的連接,包括'127.0.0.1'。你如何測試這個讓它失敗? – Corey
是。我寫錯了這個程序。 – user2574953
- 1. XAMPP使用IP地址而不是127.0.0.1或本地主機
- 2. 是公共IP地址嗎?
- 3. 用戶的IP地址127.0.0.1始終
- 4. 解決ip公網地址爲127.0.0.1
- 5. PHP - IP地址回顯爲127.0.0.1
- 6. 與IP地址
- 7. 默認網關IP地址是否與路由器IP地址相同?
- 8. IP地址將不會連接到相同的IP地址
- 9. node-request ip addres與遠程ip地址不同
- 10. Django網址與IP地址
- 11. IP地址與「http://」
- 12. 是用戶唯一的IP地址嗎?
- 13. Uri.parse與本地IP地址
- 14. 網頁與本地主機和IP地址不同顯示
- 15. IP地址不同於連接到
- 16. 我的IP地址有不同的值?
- 17. 用不同的IP地址運行chrome
- 18. 不同的獲取IP地址
- 19. 商店不同的IP地址
- 20. 不同的IP地址錯誤?
- 21. 聽一個不同的IP地址
- 22. 術語「外部IP地址」和「公共IP地址」是否同義?
- 23. localhost與127.0.0.1的mysql不同
- 24. 在C#中相同LAN上的IP地址到MAC地址的IP地址
- 25. 如何與IP地址
- 26. Android的IP地址與java
- 27. 獲取ip地址與XcvData
- 28. 無法與IP地址
- 29. 獲取本地地址而不是IP地址的WebService
- 30. 檢索的IP地址與RKA IP地址的中間件
嘗試將服務器綁定到0.0.0.0。然後FQDN和127.0.0.1都可以工作。 – uselpa