C # NET Сервер / Клиентское приложение - PullRequest
4 голосов
/ 06 марта 2011

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

-Ввод команды на сервер (консольное приложение) через интерфейс ASP для установки программного обеспечения на одном из удаленных клиентов. - Сервер сообщает клиенту загрузить zip-пакет (с другого FTP-сайта) в определенное место и извлечь его по определенному пути.

Я не уверен, но похоже, что в C # есть Sockets, а затем какая-то сделка типа WebClient. Я предполагаю, что сокеты будут лучшим маршрутом, и использовать асинхронный (каждый удаленный клиент подключен в своем собственном потоке, взаимодействуя с сервером отдельно от других).

Любая информация об этом была бы отличной!

Ответы [ 2 ]

8 голосов
/ 06 марта 2011

Не вдаваясь в подробности ваших конкретных требований, я бы определенно посмотрел на WCF .

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

Программирование клиент-сервера с WCF

2 голосов
/ 06 марта 2011

WebClient позволяет вам делать HTTP-запросы, поэтому я не думаю, что это здесь очень актуально.

Есть много подходов, которые вы можете использовать для этого приложения.

Один, конечно, идет с WCF, который предоставляет в миллион раз больше возможностей, чем вам нужно. Тем не менее, WCF имеет кривую обучения, и, в частности, трудно понять, что именно скрыто за всеми абстракциями без предварительного опыта. Кроме того, это решение недоступно, если вы ориентируетесь на .NET 2.0.

Вы также можете реализовать простую модель клиент / сервер TCP с использованием сокетов. В то время как вы можете программировать для необработанных сокетов, .NET также предлагает удобные классы System.Net.Sockets.TcpListener для сервера и System.Net.Sockets.TcpClient для клиентов. Этот подход намного ближе к металлу, но это компромисс: гораздо проще понять, что именно вы делаете, но вам придется реализовать немало функций самостоятельно.

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