我的网络上有一台有多个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'这样的库应该是有用的。 –