Max, исходящий сокетные соединения в.NET/Windows Server

IMO, это - самый чистый ответ:

Name:
Pwd:

Еще лучше при использовании JavaScript для представления формы с помощью пользовательского отделения, необходимо также использовать JavaScript, чтобы создать его и установить стиль display:none на кнопке. Таким образом, пользователи с отключенным JavaScript будут все еще видеть кнопку отправки и могут нажать на него.

было отмечено, что display:none заставит IE игнорировать вход. Я создал новый пример JSFiddle , который запускается как стандартная форма и использует прогрессивное улучшение, чтобы скрыть отправление и создать новое отделение. Я действительно использовал моделирование CSS от StriplingWarrior.

12
задан Redth 17 November 2009 в 00:38
поделиться

2 ответа

Компьютер Windows можно легко масштабировать до очень большого числа открытых соединений. Предел эфемерного порта в 64 КБ установлен на IP-адрес, а не на машину. Если вам нужно больше эфемерных портов, увеличьте пределы, как предлагает @SuperTux, но также назначьте машине больше IP-адресов. Чтобы воспользоваться этим преимуществом, вам придется вручную вызвать Bind () в своем клиентском сокете и передать исходный IP-адрес из вашего пула со свободными портами (это также означает, что вы будете нести ответственность за отслеживание количества доступных эфемерных портов для каждого адреса). Многие высокопроизводительные устройства делают это (например, пулы SNAT на балансировщиках нагрузки) для поддержки сотен тысяч одновременных подключений.

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

11
ответ дан 2 December 2019 в 21:03
поделиться

65355 - это ограничение протокола IP и, что более важно, ограничение, налагаемое стеками TCP / IP большинства операционных систем.

Для увеличения максимального числа эфемерных портов в Windows выполните следующие действия:

  1. Запустите редактор реестра.
  2. Найдите следующий подраздел в реестре и нажмите «Параметры»: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters
  3. В меню «Правка» нажмите «Создать» и добавьте следующую запись реестра:

    Имя значения: MaxUserPort

    Тип значения: DWORD

    Значение данных: 65534

    Допустимый диапазон: 5000-65534 (десятичный)

    По умолчанию: 0x1388 (5000 десятичный)

    Описание: Этот параметр управляет максимальным номером порта который используется, когда программа запрашивает у системы любой доступный пользовательский порт. Как правило, временные (краткосрочные) порты выделяются между значениями от 1024 до 5000 включительно.

Обычно для масштабирования до более 65K портов вы должны использовать несколько серверов в кластере.

3
ответ дан 2 December 2019 в 21:03
поделиться