據我瞭解,套接字就像文件一樣只是數據結構。這是否意味着爲不同的IP,PORTNUMBER和TRANSPORT TYPE(TCP/UDP)組合創建了不同的套接字DS?插座之間的關係,傳輸類型,端口號,IP
我想知道,如果下面的實現是可能的
- >製作一個Socket監聽2個不同的IP地址,但相同的端口號,這樣,當一個客戶端發送數據到任何這些IP的(但相同的端口號),服務器應該能夠提供服務。 (或者可以將端口號與2層不同的IP相關聯)
- >使2個過程監聽相同的端口號
據我瞭解,套接字就像文件一樣只是數據結構。這是否意味着爲不同的IP,PORTNUMBER和TRANSPORT TYPE(TCP/UDP)組合創建了不同的套接字DS?插座之間的關係,傳輸類型,端口號,IP
我想知道,如果下面的實現是可能的
- >製作一個Socket監聽2個不同的IP地址,但相同的端口號,這樣,當一個客戶端發送數據到任何這些IP的(但相同的端口號),服務器應該能夠提供服務。 (或者可以將端口號與2層不同的IP相關聯)
- >使2個過程監聽相同的端口號
讓一個Socket監聽2個不同的IP地址,但相同的端口號,以便當客戶端將數據發送到任何這些IP(但端口號相同),服務器應能夠爲其提供服務。 (或者可以將端口號與2層不同的IP相關聯)
套接字不能2+ 明確 IP地址聽。您只能在套接字上調用bind()
一次,並且它不允許您一次指定多個IP地址。但是,可以使用bind()
作爲通配符IP地址的套接字(對於IPv4爲INADDR_ANY
,對於IPv6爲IN6ADDR_ANY
),這將允許套接字同時綁定到所有可用的本地IP地址。在這種情況下,您確實可以在套接字綁定的任何IP地址上將數據發送到同一端口。
使2個進程相同的端口號
這僅僅是可能的,如果每個進程綁定到不同的IP地址,並沒有使用通配符的IP聽。如果您有多個進程監聽相同的IP和端口,他們將如何知道哪個進程應該處理哪些數據?他們不會,所以操作系統首先不允許它。
套接字不僅僅是數據結構。它們是通信網絡的端點。你偏離主題的問題是建立在謬誤之上的。 – EJP
是的'他們是交流的終點n/w'是我看到的每一處的短語,並且不能真正理解在編程級別的含義 – tez