Не можете открыть более 28234 розеток? - PullRequest
4 голосов
/ 05 июня 2011

Я пишу сетевой сервис и стремлюсь к высокому параллелизму. По какой-то причине, когда я пытаюсь подключиться к 28 234-му разъему, я получаю:

[Errno 99] Cannot assign requested address

Клиент написан на python, а серверная часть написана на haskell. Я запускаю это на Ubuntu 11.04 и:

$ ulimit -n
1048576

Как мне преодолеть это ограничение?

Ответы [ 2 ]

1 голос
/ 05 июня 2011

Обычный обходной путь - создание дополнительных IP-адресов на хосте, каждый IP-адрес дает вам дополнительный эфемерный диапазон портов в соответствии с ответом dan_waterworth, если вы привязываете сокет к интерфейсу.

У Microsoft есть обсуждение по теме здесь:

http://msdn.microsoft.com/en-us/library/cc150670(v=vs.85).aspx

1 голос
/ 05 июня 2011

Эфемерный диапазон портов, установленный в:

/proc/sys/net/ipv4/ip_local_port_range

Запрещает создание дополнительных соединений.

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