Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ip адрес на net Remoting, Определение ip при использованиии .net 
:(
    Опции темы
fluffy
Дата 19.4.2009, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день!
Пишу приложение(учебное) на основе dotNet remoting. Суть приложения проста: пользователи вводят что-то на клиентах (рассмотрим пример с решением уравнений), затем жмет кнопку "решить", все шлется на сервер(все классы MarshalByRefObject), там обрабатывается и шлется обратно. Все было хорошо, пока не появилось желание отражать на сервере(читай форме) действия клиента в виде:
" 192.168.*.* connected;
192.168.*.* solved smth;
192.168.*.* disconnected;"
как я понял, нигде так просто ip адрес не отловишь?
не подскажите? smile 
PM MAIL   Вверх
-Mikle-
Дата 19.4.2009, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



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



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
fluffy
Дата 20.4.2009, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(-Mikle- @ 19.4.2009,  23:00)
Не знаю как на счет айпишника, но клиента можно идентифицировать другими способами. Есть такая штука как контексты...

Да, я читал про контексты, но не совсем разобрался.

Пытался передать ip таким образом:
Код

class RemoteHost //класс с функциями сервера
{
  ...
  public void Connect(String str)
  {
       CallContext.SetData("IP", str);
  }
  ...
}

на клиенте делал 
Код

rm = (RemoteHost)Activator.GetObject(typeof(RemoteHost), "tcp://" + textBox1.Text + "/RemoteHost/rh");
rm.Connect(this.IP);

далее на сервере пытался получить вручную хотя бы 1 ip (те вешал кнопку и делал ей обработчик)
Код

CallContext.GetData("IP");


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


Делал аналогично приведенному тут:
http://blogs.msdn.com/dotnetremoting/archi.../27/680667.aspx

Это сообщение отредактировал(а) fluffy - 20.4.2009, 07:49
PM MAIL   Вверх
-Mikle-
Дата 20.4.2009, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Я щас уже не помню, но там помоему немаловажную роль играл ContextBoundObject и ILogicalThreadAffinative...

Добавлено через 2 минуты и 23 секунды
Цитата(fluffy @  20.4.2009,  10:38 Найти цитируемый пост)
  public void Connect(String str)
  {
       CallContext.SetData("IP", str);
  }

Строку нельзя положить так просто, надо ложить объект наследник от пустого интерфейса ILogicalThreadAffinative.

Добавлено через 4 минуты и 42 секунды
Цитата(fluffy @  20.4.2009,  10:38 Найти цитируемый пост)
к тому же мне надо как то отлавливать различные действия(такие как подключен, отключен, запрос пересчета)

Ну с этим то, проблем нет? или есть? Это ведь вызовы соответствующих методов...


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




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


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

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