2011-09-21 166 views
2

我的网络上有一台有多个IP地址并使用多个端口的计算机。有没有办法打开一个接收所有这些IP地址和所有这些端口的数据的套接字,然后让接收到的数据包含数据包头中的IP地址以及它接收到的端口?侦听所有内容的套接字

改为: 如何设置可以在多个端口和IP上接收数据的套接字? 然后,一旦我收到数据,有什么办法知道数据来自哪里?

+0

如果你听特殊IP地址'0.0.0.0',套接字将绑定到所有接口。 – Sjoerd

+0

听“多个端口”不是TCP - 也许你应该捕获原始IP数据包。像'libpcap'这样的库应该是有用的。 –

回答

0
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。只有这个想法。 不要忘了,如果端口已被另一个应用程序使用,你将无法读取或写入它 - 我认为是这样的...

3

只能使用一个套接字绑定到多个端口。 TCP/IP网络栈基于一个端口==一个套接字的思想。

3

要收听所有IP地址,只需使用INADDR_ANY。不过你仍然需要每个端口一个插座。