我有一个客户端应用程序,我在其中收集数据并将其存储在类数据包结构中。我可以将此类的对象发送到我的服务器应用程序吗?..这两个应用程序都运行在通过 LAN 网络连接的不同机器上。
在 .Net Remoting 中,对象在服务器中实例化,而 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。我通过 Notify 函数在服务器上接收到这个示例对象并将其拆箱以获取我的值。
当我调用函数 MessageString 时,由于安全限制 Objref 无法访问,我得到一个异常!
还告诉我是否有任何其他方法可以解决这个问题。或者我应该使用 SocketProgramming 方法,将我的所有类值转换为字节,然后发送到服务器,然后重新分配它们。
谢谢。