Ограничить количество TCP-соединений, которые я могу принять I() на WinCE

Мои требования: "Ограничить количество сокетов, которые я могу принять () на WinCE, скажем, 60 сокетов".

Потому что я столкнулся с проблемой:

  1. Моя встроенная система WinCE имеет ограниченные ресурсы для обработки запросов от TCP. Поэтому я должен ограничить количество соединений TCP.

  2. Я попробовал это: если я не вызываю accept(), если я нашел, я уже принял 60 сокетов. Там будут серьезные проблемы на этом. Устройство станет очень медленным. Я пытаюсь отладить это.

  3. Если я сначала принимаю его (), а затем закрываю (), клиент сообщит об ошибке; потому что клиент считает, что он плохо себя ведет, если сервер сначала принимает TCP-соединение, а затем немедленно закрывает его.

Кто-нибудь может дать мне подсказку о том, как я могу это сделать.

Я пытался прочитать исходный код в папке /WINCE/PRIVATE, я могу только проследить до "proxy.SOMETHING()". Кажется, я не могу найти код сокета Windows. Не могли бы вы исправить меня, если я ошибаюсь.

1 ответ

Решение

Если вы не вызываете accept(), соединения по-прежнему устанавливаются на более низком уровне TCP/IP, когда другая сторона ожидает вашего подтверждения (и, возможно, повторяет попытку). Даже если вы не вызываете accept(), у вас все равно будут выполняться некоторые действия для каждого запроса на соединение, и это может замедлить работу вашей системы. Вы должны иметь сокет, связанный с входящим портом (и, возможно, адресом) с ожидающим прослушиванием вызова. Пока вы выполняете функцию listen(), вы говорите системе обрабатывать входящие запросы на соединение и сообщать о них для accept(). Если вы закроете этот сокет и не будете выполнять какие-либо функции listen() (лучше закрыть его, так как это приведет к удалению большинства элементов управления соединениями), нагрузка на систему должна уменьшиться. С другой стороны, клиенты будут сообщать о вашем сервере как о недоступном, и это может быть проблемой, поскольку они не смогут понять, действительно ли сервер отключен или просто загружен запросами.

Другие вопросы по тегам