![]() |
|
Модераторы: gambit |
![]()
|
|
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: нет Всего: 1 |
Суть:
Серверная прога на сервере подключается к базе данных(тут вопросов пока нет) Клиенты - админмашина(через интрефейс клиентской проги осуществляет наполнение базы данных - (имеется в виду в ручную)через серверную прогу - диспетчера(реальные люди) в режиме реального времени через интрефейс клиентской проги постоянно обращаются к базе через серверную программу (считывают данные, и постоянно обновляют таблицу журнала принятых звонков). Посоветовали при интенсивном обмене данных использовать Remoting. Скачал простенький пример - вроде кое-что понятно - ковыряюсь. Текущий вопрос: В примере клиент серверу отправлял тесктовые сообщения. Как можно организовать обмен данными sql таблицы? --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| Experimenter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 430 Регистрация: 8.5.2007 Где: Уфа Репутация: 1 Всего: 17 |
Также как в примере, только в прокси-классе объявляешь методы, выполняющие запросы к БД, в клиентском приложении вызываешь эти самые методы... -------------------- public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ if(zlo1 < zlo2) return zlo1; else if(zlo1 > zlo2) return zlo2; else throw new Exception("Kill yourself by the wall"); } |
|||
|
||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: нет Всего: 1 |
Как узнать IP клиента в REmoting?
--------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| Experimenter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 430 Регистрация: 8.5.2007 Где: Уфа Репутация: 1 Всего: 17 |
На все 100 не уверен, но посмотри:
System.Net.NetworkInformation и System.Net.HttpListener.HttpListenerRequest и еще, слышал, что клиент не обязан свой айпишник сообщать серверу, поэтому, мне думается, лучше использовать авторизацию -------------------- public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ if(zlo1 < zlo2) return zlo1; else if(zlo1 > zlo2) return zlo2; else throw new Exception("Kill yourself by the wall"); } |
|||
|
||||
| CityAC |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: нет Всего: 1 |
Наверно откажусь от Remoting в пользу XML сериализации.
Меня убедили не использовать каркас. Только вот что не могу понять. Объект DataSet можно сериализовать, а на DataRow ругается.(вроде как (мой перевод)в этом типе не присутствует коструктор без параметров) - что это значит? Но если даже передаватьобъект DataSet, то как это делается? Везде примеры сериализации в xml файл. А как его пустить по сетевому потоку? Типа как в NetworkStream при бинарной сериализации? Может я не ту сторону смотрю. Короче говоря нужно с сервера отправить клиенту строку из базы SQL Строка получается в формате DataRow я ее вытягиваю из из объекта DataSet
Какая ф-ция возвращает объект Stream, который используется в XML сериализации? Как например это делается в следующем коде для NetworkStream
Это сообщение отредактировал(а) CityAC - 20.9.2007, 10:18 --------------------
Вижу цель, не вижу припятствий. |
||||
|
|||||
| Experimenter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 430 Регистрация: 8.5.2007 Где: Уфа Репутация: 1 Всего: 17 |
WebRequest.GetRequestStream(); XmlTextWriter запишет твои данные хоть в какой стрим, файловый или сетевой... Данные можно сериализовать в XmlTextWriter , или напрямую в сетевой стрим. -------------------- public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ if(zlo1 < zlo2) return zlo1; else if(zlo1 > zlo2) return zlo2; else throw new Exception("Kill yourself by the wall"); } |
|||
|
||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: нет Всего: 1 |
Ошибка: An object reference is required for the nonstatic field, method, or property 'System.Net.WebRequest.GetRequestStream()' Вообщето я в локальной сети данные передаю. А эта ф-ция для записи данных в Интернет ресурс Какой класс вызывает эту ф-цию для локалки ? Это сообщение отредактировал(а) CityAC - 20.9.2007, 11:11 --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: нет Всего: 1 |
А как называется сетевой стрим? --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| Experimenter |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 430 Регистрация: 8.5.2007 Где: Уфа Репутация: 1 Всего: 17 |
CityAC, без бутылки не разберешься, код в студию...
Сетевой обмен даже на единственной отключенной от сетки машине между двумя приложениями можно организовать через System.Net (на localhost, к примеру)
Извини, что не разжевал, WebRequest напрямую не используют:
вот так надо. Это сообщение отредактировал(а) Experimenter - 20.9.2007, 12:03 -------------------- public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ if(zlo1 < zlo2) return zlo1; else if(zlo1 > zlo2) return zlo2; else throw new Exception("Kill yourself by the wall"); } |
||||||
|
|||||||
| CityAC |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: нет Всего: 1 |
Как это сделать ума не приложу Следующая строка не катит. Ну не хочет он создавать XmlSerializer для объекта DataRow
Это сообщение отредактировал(а) CityAC - 20.9.2007, 12:31 --------------------
Вижу цель, не вижу припятствий. |
||||||
|
|||||||
| Experimenter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 430 Регистрация: 8.5.2007 Где: Уфа Репутация: 1 Всего: 17 |
Как это ни печально, DataRow не подлежит сериализации, так как не имеет публичного конструктора. С сериализацией только на первый взгляд все просто, на самом деле там много подводных камней. Но можно сериализовать DataSet или DataTable Это сообщение отредактировал(а) Experimenter - 20.9.2007, 13:23 -------------------- public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ if(zlo1 < zlo2) return zlo1; else if(zlo1 > zlo2) return zlo2; else throw new Exception("Kill yourself by the wall"); } |
|||
|
||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: нет Всего: 1 |
Ну насчет DAtaRow - да, я залез в дебри- но нашел выход.
Создаю DataSet,помещая в него не всю таблицу а только нужную строку и затем передаю ее в составе DataSet. а что насчет этой ошибки? Это сообщение отредактировал(а) CityAC - 20.9.2007, 13:29 --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| Experimenter |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 430 Регистрация: 8.5.2007 Где: Уфа Репутация: 1 Всего: 17 |
Так попробуй, и если не поможет, поиграйся со свойствами webreq, их у него много, полезных и бесполезных. -------------------- public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ if(zlo1 < zlo2) return zlo1; else if(zlo1 > zlo2) return zlo2; else throw new Exception("Kill yourself by the wall"); } |
||||
|
|||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: нет Всего: 1 |
спасибо за ответы Пока ничего не получилось - буду пробовать дальше.
Последний совет помог!!! Это сообщение отредактировал(а) CityAC - 20.9.2007, 13:59 --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| Experimenter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 430 Регистрация: 8.5.2007 Где: Уфа Репутация: 1 Всего: 17 |
ты скромничаешь, выкладывай, какие ошибки, помогу тебе как многодетный отец многодетному отцу. Чем смогу, конечно... -------------------- public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ if(zlo1 < zlo2) return zlo1; else if(zlo1 > zlo2) return zlo2; else throw new Exception("Kill yourself by the wall"); } |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |