несколько клиентов - одно подключение к серверу с сокетами tcp / ip c # .net - PullRequest
0 голосов
/ 19 мая 2010

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

сделать простую систему клиент-сервер. Итак, у меня есть общее представление о том, как это работает.

В любом случае, мне все еще не ясно, как я могу настроить сервер, который может управлять соединениями с несколькими клиентами? Могу ли я просто создать новый сокет для каждого соединения, а затем сохранить их в каком-то списке? Нужно ли мне что-то для мультиплексирования? Должен ли я прослушивать несколько портов? Какой лучший способ здесь?

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

Любая помощь приветствуется! Если кто-то знает хорошую книгу, которая охватывает такие вещи, дайте мне знать. Приветствия

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

Ответы [ 2 ]

2 голосов
/ 19 мая 2010

Вам могут пригодиться некоторые из моих часто задаваемых вопросов по TCP / IP .NET, особенно с использованием сокета в качестве сокета сервера , который объясняет, как прослушивающие серверы создают новые клиентские подключения, и XML через TCP/ IP , в котором рассматриваются решения, которые необходимо принять для протокола XML-over-TCP / IP.

1 голос
/ 19 мая 2010

Я бы отказался от вашего плана использовать сокеты и переключился на WCF Windows Communication Foundation . Он гораздо элегантнее и предназначен для того, чтобы делать все, что вам нужно, значительно проще и проще, чем сокеты .NET.

Если вам нужно руководство по его использованию, есть множество удивительных веб-трансляций Microsoft от Michele Leroux Bustamante, которые позволят вам быстро приступить к работе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...