Мне нужно разработать систему клиент-сервер, где я мог бы иметь несколько клиентов, взаимодействующих с одним сервером одновременно. Я хочу передавать сериализованные объекты XML, а также отправлять и получать другие команды для вызова методов. Теперь я только начинаю программирование сокетов на C # и .Net и обнаружил, что асинхронный ввод-вывод - это путь, позволяющий методам не блокировать выполнение кода. Также есть много примеров того, как
сделать простую систему клиент-сервер. Итак, у меня есть общее представление о том, как это работает.
В любом случае, мне все еще не ясно, как я могу настроить сервер, который может управлять соединениями с несколькими клиентами?
Могу ли я просто создать новый сокет для каждого соединения, а затем сохранить их в каком-то списке?
Нужно ли мне что-то для мультиплексирования?
Должен ли я прослушивать несколько портов?
Какой лучший способ здесь?
И другое дело, если мне нужно разработать собственный протокол, чтобы различать то, что я на самом деле отправляю по сети -> сериализованный объект xml или команду, которая может быть просто строкой, закодированной в ascII или чем-то еще. Или я бы разработал свой собственный протокол только для отправки этих команд?
Любая помощь приветствуется! Если кто-то знает хорошую книгу, которая охватывает такие вещи, дайте мне знать. Приветствия
Я забыл упомянуть, что некоторые из моих клиентов, которые должны общаться с моим сервером, будут pda, и поэтому я использую компактную среду ... Так что это может привести к некоторым ограничениям ...