Исключительная ситуация сокета: “Больше нет конечных точек, доступных от картопостроителя конечной точки”

Когда я нажал на org, который был в состоянии ожидания. Всплывающая оснастка загружается на некоторое время, когда она исчезла, я вижу опцию удаления на правой панели. Благодарю.

7
задан Bryan Marble 7 November 2008 в 15:55
поделиться

5 ответов

На очень занятом сервере у можно заканчиваться Сокеты. Вам, вероятно, придется скорректировать некоторые параметры TCPIP. Скорректируйте эти два в реестре:

HKLM\System\CurrentControlSet\Services\Tcpip\Parameters
   MaxUserPort  REG_DWORD  65534 (decimal)
   TcpTimedWaitDelay REG_DWORD 60 (decimal)

По умолчанию существует задержка нескольких минут между выпуском сетевого порта (сокет) и когда это может быть снова использовано. Кроме того, в зависимости от версии ОС существуют только несколько тысяч в диапазоне, который будут использовать окна. На сервере, выполненном это в командной строке:

netstat -

и посмотрите на результаты (канал в файл является самым легким: netstat-> netstat.txt). Если Вы видите большое количество портов от 1025-> 5000 в состоянии Timed Wait Delay, то это - Ваша проблема, и это решено путем корректировки макс. порта пользователя от 5 000 до 65 534 использований ключа реестра выше. Можно также скорректировать задержку при помощи ключа реестра выше для переработки портов более быстро.

Если это не проблема, то проблема вероятна количество незаконченных соединений, что Вы начались Ваш Слушать () метод.

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

Исходная проблема не имеет никакого отношения к winsock. Все ответы выше являются НЕПРАВИЛЬНЫМИ. Проигнорируйте исключение первого шанса, это не проблема с Вашим приложением, просто некоторая внутренняя обработка ошибок.

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

Вы на самом деле видите проблему, например, программа заканчивается из-за необработанного исключения?

Отладчик может распечатать сообщение, даже когда нет проблемы, например, посмотрите здесь.

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

Uhh, возможно, это - потому что Вы ограничиваете значительно максимальное количество входящих соединений?

listen (m_accept_fd, 5)
// Limit here       ^^^

При разрешении большего отставания необходимо смочь решить проблему. Используйте что-то как SOMAXCONN вместо 5.

Кроме того, если Ваша проблема находится только на запуске сервера, Вы могли бы хотеть выключить, ЗАДЕРЖИВАЮТСЯ (SO_LINGER), чтобы препятствовать тому, чтобы соединения бродили вокруг и заблокировали сокет...

1
ответ дан 6 December 2019 в 21:21
поделиться

Это не ответит на Ваш вопрос непосредственно, но так как Вы используете C++, я рекомендовал бы использовать что-то как Повышение:: Asio для обработки кода сокета. Это дает Вам хорошую абстракцию по winsock API и должно позволить Вам более легко диагностировать состояния ошибки.

0
ответ дан 6 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: