Рекомендации по серверу на основе TCP/IP (C#)

Я искал несколько советов о наилучшем подходе к серверу на основе TCP/IP. Я довольно много смотрел здесь и на других сайтах и ​​не могу не думать, что то, что я увидел, является излишним для той цели, для которой оно мне нужно.

Ранее я писал по одному на поток для каждого соединения, который, как я теперь знаю, плохо масштабируется, но я думал о том, что, создав новый поток для каждого соединения, я мог бы использовать ThreadPool и ставить в очередь входящие соединения для обработки, поскольку время не огромная проблема (при условии, что они будут обработаны менее чем за минуту или две после поступления).

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

То, что я хотел знать, будет ли это масштабирование лучше, чем сценарий потока на соединение (я предполагаю, что это произойдет из-за повторного использования потока), и примерно, какое количество устройств может поддерживать этот тип установки.

Также, если это не считается подходящим, может кто-то предоставить ссылку или объяснение метода SocketAsyncEventArgs. Я довольно много читал по этой теме и видел примеры, но я не могу понять порядок событий и т. Д. И почему некоторые методы вызываются в то время, когда они есть.

Спасибо за любую помощь.

Я прочитал комментарии, но кто-нибудь мог бы уточнить их? Хотя, если честно, я бы предпочел начальный подход к катанию самостоятельно.

0 ответов

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