Двухстороннее общение клиент-сервер - PullRequest
7 голосов
/ 24 января 2009

Я смотрю на создание клиент-серверного приложения в C # с использованием winforms или WPF. Клиентское приложение должно быть локальным, поскольку оно должно взаимодействовать со специализированным оборудованием.

Архитектура, которую я ищу, заключается в том, что клиент подключается к порту сервера по протоколу TCP / IP. Затем клиент отправляет запросы на сервер, а сервер отправляет ответы клиенту. Клиент будет оставаться подключенным к серверу, пока пользователь вошел в систему.

Я посмотрел на веб-сервисы, и, насколько я могу понять, WCF расширяет веб-сервисы, что означает, что сервер не может отправить сообщение клиенту.

Я ошибаюсь из-за WCF? Если нет, то как лучше всего это сделать?

Ответы [ 4 ]

3 голосов
/ 24 января 2009

WCF поддерживает двусторонний обмен сообщениями , который должен выполнить то, что вам нужно.

Смотри также: http://msdn.microsoft.com/en-us/library/cc645027(VS.95).aspx

1 голос
/ 24 января 2009

Я знаю, что WCF - это колени пчелы и все такое - но я бы, вероятно, просто сделал пару TcpServer и TcpClient. С другой стороны, возможно, я единственный, кто считает, что WCF слишком сложен для случая с 80%.

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

1 голос
/ 24 января 2009

Спасибо. Это именно то, что я хочу. Я также нашел два очень полезных решения:
http://www.codeproject.com/KB/WCF/WCF_Duplex_UI_Threads.aspx
http://www.thoughtshapes.com/WCF/ExampleThree.htm

1 голос
/ 24 января 2009

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

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