Модераторы: gambit, Kefir, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WPF. Обмен мгновенными сообщениями в локальной сет 
:(
    Опции темы
ad12
Дата 18.9.2010, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.7.2010

Репутация: нет
Всего: нет



Добрый день.
Есть небольшая локальная сеть.
На каждой рабочей станции загружается приложение WPF.
Нужно организовать обмен короткими сообщениями между этими приложениями.
Чтобы сообщение, адресованное конкретной рабочей станции, попадало в соответствующий управляющий элемент на интерфейсе приложения.

Как такое сделать? Кто-нибудь знает?
 smile 
PM MAIL   Вверх
WolfTheGrey
Дата 18.9.2010, 13:15 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



знаем, но эта тема на докторскую диссертацию тянет smile
PM MAIL   Вверх
Kaerus
Дата 18.9.2010, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WPF'er
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 3.9.2010

Репутация: 1
Всего: 1



Ты бы хотя бы уточнил 
1) как машины будут обмениваться сообщениями (сокеты, WCF, пайпы или чего еще)
2) что значит "сообщение, адресованное конкретной рабочей станции"

 а то так получается что ты хочешь что-то типа "Magic Remote Binding"

А то что у тебя лок. сеть это вообще ничего не меняет, в локалке так-же сеть может отвалиться на любой машине
PM MAIL ICQ   Вверх
WolfTheGrey
Дата 19.9.2010, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Kaerus, афтор имеет в виду приложение вроже маленького чата, где месаги летят не всем пользователя а конкретному лицу, типо привата.
Такое организовать возможно при помоши UDP протокола и фильтрации адресованого покета.

Осталось узнать в каком виде афтор желает сей девайс видеть. или вид девайса автор сам напишет?
PM MAIL   Вверх
Kaerus
Дата 19.9.2010, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WPF'er
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 3.9.2010

Репутация: 1
Всего: 1



WolfTheGrey
Зачем же тогда такой акцент на "попадало в соответствующий управляющий элемент на интерфейсе приложения" и если уж тема в разделе "WPF & Silverlight" я думаю автора интересует нечто большее чем обмен данными по UDP

В общем хотелось бы, от автора услышать пояснения
PM MAIL ICQ   Вверх
WolfTheGrey
Дата 19.9.2010, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



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

PM MAIL   Вверх
Exai1e
Дата 19.9.2010, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



http://www.progblog.ru/Posts/WCF-Chat

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


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
ad12
Дата 19.9.2010, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.7.2010

Репутация: нет
Всего: нет



Спасибо всем, что откликнулись.
Дело в том, что в сетевых приложениях я не силён.
Нужно ли тут клиент-серверная архитектура? 
Т.е. надо ли писать и клиентскую и серверную часть?
Где тут копать?

И если это тянет на докторскую - может, взять какой-нибудь готовый чат.
Только как его интегрировать с моим?
Чтоб всё происходило внутри моего WPF- интерфейса.

Т.е. давлю кнопку на интерфейсе, в окошко набираю короткое сообщение, выбираю адрес, OK, и оно всплыло у адресата.

Вот.
PM MAIL   Вверх
WolfTheGrey
Дата 19.9.2010, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Нужно ли тут клиент-серверная архитектура?
Т.е. надо ли писать и клиентскую и серверную часть?

Сервер нужен, по другому ни как. Да и если клиента не будет в сети то, можно задержать отправку сообщения на сервере.
а вообще тебе надо сюда:http://forum.vingrad.ru/forum/dotnet-distributed-network-net-app-csharp.html

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  WindowsTcpServer.zip 105,97 Kb
PM MAIL   Вверх
ad12
Дата 19.9.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.7.2010

Репутация: нет
Всего: нет



А если с каждой рабочей станции отправлять пакет с сообщением в сеть,
он разлетается по сети, а на каждом приложении на раб.станциях висит программа слушатель-перехватчик, она
проверяет адрес, и если адрес его - принимает сообщение, если нет - игнорирует...
PM MAIL   Вверх
Exai1e
Дата 19.9.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



можешь сделать так - есть программа сервер, в ее задачу входит принимать подключения, и принимать сообщения. когда ты отсылаешь серверу текст для какой либо машины "маркинуеш" его "меткой" для кого именно это сообщение предназначено, это может быть и строка "|CompName|Message|" которую будешь парсить на сервере, получая из нее "CompName" и именно этому компьютеру в итоге отсылать данные из части строки "Message". Это может быть сериализованный объект (что удобнее), это может быть WCF сервис реализующий Callback. Надо выбирать технологию и/или методы решения проблемы исходя из задачи.
Цитата

Чтоб всё происходило внутри моего WPF- интерфейса.

интерфес вообще не важен, это может быть хоть консольная апликуха, хоть WinForms хоть WPF, для начала реализуй логику приложения (общение между сервером и клиентами) а уж то что сделаешь, сможешь прикрутить к любому GUI


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
ad12
Дата 21.9.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.7.2010

Репутация: нет
Всего: нет



А если вот так (попроще):
На сервере есть расшаренная папка.
Приложение на рабочей станции кладёт в эту папку сообщение с меткой кому.
В то же время на каждой раб.станции висит модуль, который периодически опрашивает эту папку
на наличие адресованных этой станции сообщений.
Если есть, он его читает и удаляет файл.
И всё  smile 
PM MAIL   Вверх
Exai1e
Дата 21.9.2010, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



ad12, раз есть "сервер с папкой" то зачем нужна папка, если можно написать простенький "сервер" в виде по (хоть консольное приложение, которое будет висеть в фоне и делать свою работу), которое будет хранить ваше сообщения и отсылать их подключившимся клиентам. достаточно обычных сокетов. (system.net.sockets) 
если сообщения это обычные string объекты

Код

есть программа сервер, в ее задачу входит принимать подключения, и принимать сообщения. когда ты отсылаешь серверу текст для какой либо машины "маркинуеш" его "меткой" для кого именно это сообщение предназначено, это может быть и строка "|CompName|Message|" которую будешь парсить на сервере, получая из нее "CompName" и именно этому компьютеру в итоге отсылать данные из части строки "Message".


compname - пусть это хоть IP адрес, хоть логин по которому будут подключатся клиенты к серверу, да что угодно) главное для себя это решить smile

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

Это сообщение отредактировал(а) Exai1e - 21.9.2010, 14:53


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
ad12
Дата 21.9.2010, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.7.2010

Репутация: нет
Всего: нет



Спасибо, Exai1e.

А можно, если нетрудно, немножко C# кода простенького сервера.
(Я никогда не писал серверных приложений  smile )
PM MAIL   Вверх
Exai1e
Дата 21.9.2010, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



ad12, в интернете довольно много разнообразных примеров, как для совсем начинающих с подробностями так и более "продвинутые"
попробуйте поискать по словами C# Sockets, System.Net.Sockets, Чат C# Сокеты и т.д.
например вот, общий пример
http://www.xndcrew.org/?module=articles&am...mp;b=2&a=12
http://wincode.org/programming/soketi-v-net-sozdanie-chata/
ну и т.д.

Это сообщение отредактировал(а) Exai1e - 21.9.2010, 17:01


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
userdab
Дата 22.9.2010, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 3.9.2010

Репутация: нет
Всего: нет



PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.2657 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.