Разъем, который слушает все - PullRequest
2 голосов
/ 21 сентября 2011

В моей сети есть компьютер с несколькими IP-адресами и несколькими портами.Можно ли как-нибудь открыть сокет, который получает данные по всем этим IP-адресам и всем этим портам, а затем получить полученные данные, содержащие IP-адрес из заголовка пакета и порт, на который он его получил?

Перефразируя: Как я могу настроить сокет, который может принимать данные на несколько портов и IP-адресов?Затем, как только я получу данные, есть ли способ узнать, откуда эти данные пришли?

Ответы [ 3 ]

3 голосов
/ 21 сентября 2011

Чтобы прослушать все IP-адреса, просто используйте INADDR_ANY. Однако вам будет по-прежнему нужен один сокет на порт.

3 голосов
/ 21 сентября 2011

Вы не можете привязать к нескольким портам, используя только один сокет. Сетевой стек TCP / IP основан на идее, что один порт == один сокет.

0 голосов
/ 21 сентября 2011
var s = array();
for(i = 1; i <= 65535; i++) {
    s[i] = socket.listen_port(i);
    fwrite('file.dat', s[i].read()."\n");
}

Конечно на вашем языке программирования.Это только идея.Не забывайте, что если порт уже используется другим приложением, вы не сможете читать или писать в него - я так думаю ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...