static void Main(string[] args) { if (args.Length < 1) { return; } Console.WriteLine("writer starts"); byte[] one = new byte[100000]; GenericProxy <CacheStream.IIOHelper> p = null; p = new SimpleIPC.GenericProxy <CacheStream.IIOHelper>(new SimpleIPC.Windows.SIPCProxy("cachestreamreader")); if (args[0] == "1") { Console.WriteLine("******System Cache Read Write Demo*******"); CacheStream.IOHelper ioh = new CacheStream.IOHelper(@"test1.dat"); Console.WriteLine("created d:\\test1.dat on system cache"); for (int i = 0; i < one.Length; ++i) { one[i] = 1; } bool bret = ioh.Write(one, 0, one.Length); Console.WriteLine("Wrote 100000 bytes with 1"); Console.WriteLine("Sending IPC call to the Reader"); p.Proxy.WroteBytes(Process.GetCurrentProcess().Id, ioh.hImageFile, 0, one.Length); Console.WriteLine("Sleeping for 5 seconds"); System.Threading.Thread.Sleep(5000); ioh.Read(one, 0, one.Length); Console.WriteLine("read {0} bytes with {1}", one.Length, one[0]); } else { Console.WriteLine("\n\n******ReadProcessMemory WriteProcessMeory Demo*******"); for (int i = 0; i < one.Length; ++i) { one[i] = 3; } GCHandle handle = GCHandle.Alloc(one, GCHandleType.Pinned); Console.WriteLine("Wrote 100000 bytes with 3"); Console.WriteLine("Sending IPC call to the Reader"); p.Proxy.WroteMemBytes(Process.GetCurrentProcess().Id, handle.AddrOfPinnedObject(), one.Length); Console.WriteLine("Sleeping for 5 seconds"); System.Threading.Thread.Sleep(5000); Console.WriteLine("Remote Read 100000 bytes with {0}", one[0]); handle.Free(); p.Dispose(); } Console.WriteLine("press any key to stop"); Console.ReadKey(); Console.WriteLine("writer stops"); }
static void namedobjectclienttest() { testclient tc = new testclient(); SimpleIPC.NamedObject.SIPCServer t1 = new SimpleIPC.NamedObject.SIPCServer("namedclient", tc); t1.Start(); Console.WriteLine("namedclient running"); var p = new SimpleIPC.GenericProxy <Example.ICallInterface>(new SimpleIPC.NamedObject.SIPCProxy("namedserver")); int ticket = 0; Console.WriteLine("calling server : register(veda)"); string s = p.Proxy.register("veda", "namedclient", out ticket); Console.WriteLine("result of register call:{0}, Ticket:{1}", s, ticket); Console.ReadKey(); p.Dispose(); t1.Stop(); }
static void windowsclienttest() { testclient tc = new testclient(); var t1 = new SimpleIPC.Windows.ServerContainer(); t1.Start(); t1.CreateServer(new SimpleIPC.Windows.SIPCServer("winclient", tc)); Console.WriteLine("winclient running"); var p = new SimpleIPC.GenericProxy <Example.ICallInterface>(new SimpleIPC.Windows.SIPCProxy("winserver")); int ticket = 0; Console.WriteLine("calling server : register(veda)"); string s = p.Proxy.register("veda", "winclient", out ticket); Console.WriteLine("result of register call:{0}, Ticket:{1}", s, ticket); Console.ReadKey(); p.Dispose(); t1.Stop(); }
public void publish(object o) { string cbservername = o as string; System.Threading.Thread.Sleep(1000); Console.WriteLine("publishing to client for ticket# {0}, name:{1}", 100, current_name); GenericProxy <Example.ICallbackInterface> p = null; if (winmode) { p = new SimpleIPC.GenericProxy <Example.ICallbackInterface>(new SimpleIPC.Windows.SIPCProxy(cbservername)); } else { p = new SimpleIPC.GenericProxy <Example.ICallbackInterface>(new SimpleIPC.NamedObject.SIPCProxy(cbservername)); } p.Proxy.update(100, new Example.regdata { name = current_name, regid = Guid.NewGuid().ToString() }); p.Dispose(); }