听取一切的插座

时间:2011-09-21 11:57:38

标签: c sockets network-programming

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

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

要监听所有IP地址,只需使用INADDR_ANY即可。但是, 仍然需要每个端口一个插槽。

答案 2 :(得分:0)

var s = array();
for(i = 1; i <= 65535; i++) {
    s[i] = socket.listen_port(i);
    fwrite('file.dat', s[i].read()."\n");
}

当然是你的编程语言。这只是想法。 别忘了,如果另一个应用程序已经使用过端口,你将无法读取或写入它 - 我想是这样......