Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > предача клиент-сервер-клиент


Автор: Ronin08 27.2.2008, 01:53
Добрый вечер или день, или утренний рассвет smile 

В сетевом взаимоотношении на C# не спец, поэтому многим вопрос покажется банальным.
так вот
Пишу прогу по учету рабочего времени (периодическая отправка на сервер интенсивности работы мишки, клавы и отпрвка скриншотов).
Вобщем клиент сидит за машиной, через каждые мин 10 на сервер отправляется вся эта информация (грубо говоря 2 числа и скриншот). Сохраняется в БД. Если Клиенту понадобится посмотреть свою статистику (типа "на что же я наработал сегодня smile ") то сделает запрос к серверу и эта информация отобразится в Explorer-е.
Теперь собственно вопрос: С помощью чего лучше реализовать посылку данных с клиента на сервер и обратно.
Как я понимаю Remoting не очень подхобит. А с сервера на клиента лучше с помощью XML?



Автор: Crimp 27.2.2008, 12:43
В Remoting при передаче с сервера на клиент придётся юзать события. А так можно сделать. Мне не совсем понятна фраза " А с сервера на клиента лучше с помощью XML?" Может я что то не понимаю, но XML это всуго лиш формат, и он тут особо не причём. Так что если вопрос заключается в том, можно ли это сделать с помошью Remoting, то ответ да можно.

Автор: Yama 27.2.2008, 17:05
Ronin08, для передачи с клиента на сервер вам надо сделать клиент и сервер  smile 
Самый простой и эффективный способ использовать технологию сокетов для решения задачи передачи данных с клиента на сервер.
Для того, что бы клиент мог посмотреть свою статистику через ИЕ, Вам надо сделать небольшое веб-приложение на пхп или асп.нет, которое будет выбирать из базы нужные данные, формировать их в веб-страницу и отдавать ее на клиента. В качестве веб- сервера можете использовать Apache или IIS - это зависит от выбора платформы, на которой вы будете разрабатывать веб-приложения для просмотра статистики.

Автор: Ronin08 27.2.2008, 22:39
Цитата

-Так что если вопрос заключается в том, можно ли это сделать с помошью Remoting, то ответ да можно


насколько я понял технологию Romoting, она сильно грузит трафик, а если контроль будет реализовываться через нет, то накладно будет. Или я ошибаюсь?

Цитата

Для того, что бы клиент мог посмотреть свою статистику через ИЕ, Вам надо сделать небольшое веб-приложение на пхп или асп.нет, которое будет выбирать из базы нужные данные, формировать их в веб-страницу и отдавать ее на клиента. В качестве веб- сервера можете использовать Apache или IIS - это зависит от выбора платформы, на которой вы будете разрабатывать веб-приложения для просмотра статистики. 


Разве нельзя обойтись без веб-сервера?

Автор: akizelokro 28.2.2008, 09:14
Предложу стандартный способ, которым пишутся клавиатурные грабберы (или не грабберы, возможно, путаюсь в терминологии). Пишется ActiveX контрол, который всю эту беду отслеживает и засылает куда-нибудь на сервер.
Для просмотра статистики присваивай каждому юсеру guid, который сохраняй где-нить у клиента в реестре или используй сериализацию ActiveX и у сервера в базе данных. Когда юсер захочет просмотреть свою статистику, формируй для него в интернет экплорере вызов страницы http://nowhere.com/yourstats.php c передачей сформированного ранее guid'а.

Цитата

Разве нельзя обойтись без веб-сервера?

Тогда пиши прогу c ADO, что будет дольше.


Автор: Alekz 28.2.2008, 09:18
Цитата
насколько я понял технологию Romoting, она сильно грузит трафик, а если контроль будет реализовываться через нет, то накладно будет. Или я ошибаюсь?


Если через инет - лучше сделать веб сервисы и запихнуть их в ИИС. Если инета не будет - ремоутинг просто и качественно.
А с сокетами я бы не связывался (ИМХО).

Определись точнее с задачами и ограничениями.

Автор: Yama 28.2.2008, 12:23
Как по мне, так сокеты намного универсальнее ремоутинга и проще в использовании  smile 

Цитата(Ronin08 @  27.2.2008,  22:39 Найти цитируемый пост)
Разве нельзя обойтись без веб-сервера?

Можно, но, как сказали выше, тебе надо будет писать с адо или еще один клиент-сервер. Сервер будет формировать отчет по запросу клиента. Фактически то же самое, только писать клиент и сервер тебе надо будет самому.
Цитата(akizelokro @  28.2.2008,  09:14 Найти цитируемый пост)
Для просмотра статистики присваивай каждому юсеру guid, который сохраняй где-нить у клиента в реестре или используй сериализацию ActiveX и у сервера в базе данных. Когда юсер захочет просмотреть свою статистику, формируй для него в интернет экплорере вызов

Еще можно сделать аутоитентификацию по IP, если в локальной сети IP статические, или по имени машины. Или сделать простую user-аутентификацию, так же можно добавить разграничением прав и ролей на просмотр и сбор статистики и выделить группы например такие: пользователь, начальник отдела, руководитель предприятия. Вообще можно много чего сделать  smile , вопрос лишь в том, сколько у вас на это времени и какие требования к проекту.

Автор: Ronin08 28.2.2008, 13:20
Цитата

Если через инет - лучше сделать веб сервисы и запихнуть их в ИИС. Если инета не будет - ремоутинг просто и качественно.


В том-то и дело, что нужно, чтобы контроль можно было реализовать и через нет, и по локальной.
Поэтому нужен какой-то более универсальный способ

Автор: Yama 28.2.2008, 20:08
Цитата(Ronin08 @  28.2.2008,  13:20 Найти цитируемый пост)
и через нет, и по локальной.
Поэтому нужен какой-то более универсальный способ

веб-приложение.

Автор: Ronin08 28.2.2008, 21:10
Цитата

веб-приложение. 

С получением своей статистики от сервера клиентом понятно. Приложение на asp.net

А как быть с отправкой дынных по статистике клиентом на сервер. Вариантов как я понял достаточно,
но какой выбрать в качестве оптимального в смысле простоты реализации и чтобы не сильно грузил трафик (т.к. опять же возможен контроль через инет)???

Автор: Yama 29.2.2008, 14:54
System.Net.Socket тебе в помощь ;)
Это мое ИМХО.

Автор: Ronin08 17.3.2008, 00:35
Понятно, чтобы клиенту посмотреть свою статистику ему надо обратиться к веб-серверу (IIS).
А вот нужно ли передавать саму статистику с клиента на сервер через IIS?

Автор: Yama 11.4.2008, 13:56
Цитата(Ronin08 @  17.3.2008,  00:35 Найти цитируемый пост)
А вот нужно ли передавать саму статистику с клиента на сервер через IIS? 

Можно. Методом POST.

Автор: Experimenter 21.4.2008, 18:28
Ronin08, 
Цитата

и через нет, и по локальной.
через HttpWebRequest и HttpWebResponse легко и просто решаются почти все вопросы сетевого взаимодействия (если юзаешь HTTP естественно), и твой в том числе.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)