@Sparrow1488

Правильно ли выделять целый порт под определенную задачу на сервере?

Надеюсь я корректно расписал свой вопрос
Вечерочка, Хабр! При написании сервера задался таким вопросом: если мне необходимо реализовать авторизацию пользователя, отправку данных при запросе(в моем случае новостных блоков), а так же прием и отправку сообщений по чатам, то под каждую задачу мне необходимо выделить отдельный порт, чтобы принимать, обрабатывать и отвечать на определенные запросы? Если же нет и обойтись можно лишь одним портом, тогда вопрос следующий: как мне фильтровать полученные данные и по каким критериям, чтобы, например, при авторизации люди получали подтверждение входа, а не новостной блок. Заранее спасибо!
P.S работаю я преимущественно с TCP, а приложения клиентов будут располагаться на desktop (если это как-то уточнит мой вопрос)
  • Вопрос задан
  • 193 просмотра
Решения вопроса 2
vabka
@vabka Куратор тега C#
Токсичный шарпист
Нет. Выделять 100500 портов под каждый вид запросов - иррационально.
Нужен какой-нибудь протокол поверх TCP - например HTTP
Если хотите реализовать свой - посмотрите, как устроен он, например.
Ответ написан
sarapinit
@sarapinit Куратор тега C#
Точу водой камень
как мне фильтровать полученные данные и по каким критериям

После подключения клиент должен начать отправлять запросы к серверу. И первыми байтами в запросе должны быть: длинна пакета + тип запроса. Далее, если необходимо, добавляем дополнительную информацию. Собственно по типу запроса в пакете и будем решать, что отвечать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Griboks
@Griboks Куратор тега C#
Вы принимаете сообщение вида байты=порт+ip+нагрузка, где нагрузка, очевидно, вам известна и десериализуема. А дальше уже дело программное, как и чем вы будете фильтровать и парсить байты.

p.s.
Лично мне удобнее использовать протоколы аля stateless X over JSON over UTF-8 over TCP.
Ответ написан
@d-stream
Готовые решения - не подаю, но...
Если взглянуть на вопрос в ключе потенциальных повышений нагрузки и расширения функционала - то один порт, на одном хосте окажутся узким местом. Так что можно смотреть и шире - сервисы расползутся по разным хостам и т.п. Или не смотреть на это.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы