我的網絡上有一臺有多個IP地址並使用多個端口的計算機。有沒有辦法打開一個接收所有這些IP地址和所有這些端口的數據的套接字,然後讓接收到的數據包含數據包頭中的IP地址以及它接收到的端口?偵聽所有內容的套接字
改爲: 如何設置可以在多個端口和IP上接收數據的套接字? 然後,一旦我收到數據,有什麼辦法知道數據來自哪裏?
我的網絡上有一臺有多個IP地址並使用多個端口的計算機。有沒有辦法打開一個接收所有這些IP地址和所有這些端口的數據的套接字,然後讓接收到的數據包含數據包頭中的IP地址以及它接收到的端口?偵聽所有內容的套接字
改爲: 如何設置可以在多個端口和IP上接收數據的套接字? 然後,一旦我收到數據,有什麼辦法知道數據來自哪裏?
var s = array();
for(i = 1; i <= 65535; i++) {
s[i] = socket.listen_port(i);
fwrite('file.dat', s[i].read()."\n");
}
Ofcourse in your programing language。只有這個想法。 不要忘了,如果端口已被另一個應用程序使用,你將無法讀取或寫入它 - 我認爲是這樣的...
只能使用一個套接字綁定到多個端口。 TCP/IP網絡棧基於一個端口==一個套接字的思想。
要收聽所有IP地址,只需使用INADDR_ANY。不過你將仍然需要每個端口一個插座。
如果你聽特殊IP地址'0.0.0.0',套接字將綁定到所有接口。 – Sjoerd
聽「多個端口」不是TCP - 也許你應該捕獲原始IP數據包。像'libpcap'這樣的庫應該是有用的。 –