Быстрый вопрос TCP / IP .Net Remoting - PullRequest
1 голос
/ 17 июня 2011

У меня есть клиентское приложение, в котором я собираю данные и сохраняю их в структуре класса Packet. Могу ли я отправить объект этого класса в мое серверное приложение? .. Оба приложения работают на разных компьютерах, подключенных к локальной сети.

В .Net Remoting, где экземпляр Object создается на сервере, а Objref используется совместно с клиентом. Теперь у меня есть объект класса Packet в качестве удаленного объекта, который используется в качестве активируемых объектов клиента. Объект создается, когда клиент активирует его.

public class Packet : MarshalByRefObject {
        public int svrnumber;
        public string svrname;
        [NonSerialized]
        public static IObserver Observer;

        public void MessageString(object value) {
                Observer.Notify(value);
        }

        public static void Attach(IObserver observer) {
            Observer = observer;
        }
    }

Я ссылаюсь на Pack (Object) этого класса на стороне клиента и присваиваю значение.

            Pack.svrname = "Bob";
            Pack.svrnumber = 123456;

            sample = (Object)Pack;

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

Когда я вызываю функцию MessageString, я получаю исключение, так как ограничения безопасности Objref недоступны !!

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

Спасибо.

1 Ответ

0 голосов
/ 17 июня 2011

Я бы использовал подход WCF, это сделано для этого и не подразумевает удаленного взаимодействия.

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