Ejemplo n.º 1
0
 public void Test_BeginRequest_Before_Connect()
 {
     using var server = new TestServer(ServiceName);
     server.Register();
     server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData));
     using var client = new DdeClient(ServiceName, TopicName);
     Assert.Throws<InvalidOperationException>(() => client.BeginRequest(ItemName, 1, null, null));
 }
Ejemplo n.º 2
0
        public static void RunDdeClient()
        {
            // Wait for the user to press ENTER before proceding.
            Console.WriteLine("The Server sample must be running before the client can connect.");
            Console.WriteLine("Press ENTER to continue...");
            Console.ReadLine();
            try
            {
                // Create a client that connects to 'myapp|mytopic'.
                using (DdeClient client = new DdeClient("EXCEL", "[Book1.xlsx]2011-06-22"))
                {
                    //[stock.xls]Sheet1!'r2c2'
                    // Subscribe to the Disconnected event.  This event will notify the application when a conversation has been terminated.
                    client.Disconnected += OnDisconnected;

                    // Connect to the server.  It must be running or an exception will be thrown.
                    client.Connect();

                    // Synchronous Execute Operation
                    // client.Execute("mycommand", 60000);

                    // Synchronous Poke Operation
                    //client.Poke("myitem", DateTime.Now.ToString(), 60000);
                    //client.Poke("A3", DateTime.Now.ToString(), 60000);

                    // Syncronous Request Operation
                    //Console.WriteLine("Request: " + client.Request("myitem", 60000));
                    Console.WriteLine("Request: " + client.Request("'r1c1'", 60000));

                    // Asynchronous Execute Operation
                    //client.BeginExecute("mycommand", OnExecuteComplete, client);

                    // Asynchronous Poke Operation
                    //client.BeginPoke("myitem", Encoding.ASCII.GetBytes(DateTime.Now.ToString() + "\0"), 1, OnPokeComplete, client);
                    client.BeginPoke("A2", Encoding.ASCII.GetBytes(DateTime.Now.ToString() + "\0"), 1, OnPokeComplete, client);

                    // Asynchronous Request Operation
                    //client.BeginRequest("myitem", 1, OnRequestComplete, client);
                    client.BeginRequest("A4", 1, OnRequestComplete, client);

                    // Advise Loop
                    client.StartAdvise("myitem", 1, true, 60000);
                    client.Advise += OnAdvise;

                    // Wait for the user to press ENTER before proceding.
                    Console.WriteLine("Press ENTER to quit...");
                    Console.ReadLine();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.GetType().ToString());
                Console.WriteLine(e.Message);
                Console.WriteLine(e.InnerException);
                Console.WriteLine("Press ENTER to quit...");
                Console.ReadLine();
            }
        }
Ejemplo n.º 3
0
 public void Test_BeginRequest_After_Dispose()
 {
     using var server = new TestServer(ServiceName);
     server.Register();
     server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData));
     using var client = new DdeClient(ServiceName, TopicName);
     client.Connect();
     client.Dispose();
     Assert.Throws<ObjectDisposedException>(() => client.BeginRequest(ItemName, 1, null, null));
 }
Ejemplo n.º 4
0
 public void Test_BeginRequest()
 {
     using var server = new TestServer(ServiceName);
     server.Register();
     server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData));
     using var client = new DdeClient(ServiceName, TopicName);
     client.Connect();
     var ar = client.BeginRequest(ItemName, 1, null, null);
     Assert.IsTrue(ar.AsyncWaitHandle.WaitOne(Timeout, false));
 }
Ejemplo n.º 5
0
 public void Test_BeginRequest_Before_Connect()
 {
     using (TestServer server = new TestServer(ServiceName))
     {
         server.Register();
         server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData));
         using (DdeClient client = new DdeClient(ServiceName, TopicName))
         {
             IAsyncResult ar = client.BeginRequest(ItemName, 1, null, null);
         }
     }
 }
Ejemplo n.º 6
0
 public void Test_EndRequest_After_Dispose()
 {
     using var server = new TestServer(ServiceName);
     server.Register();
     server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData));
     using var client = new DdeClient(ServiceName, TopicName);
     client.Connect();
     var ar = client.BeginRequest(ItemName, 1, null, null);
     Assert.IsTrue(ar.AsyncWaitHandle.WaitOne(Timeout, false));
     client.Dispose();
     Assert.Throws<ObjectDisposedException>(() => client.EndRequest(ar));
 }
Ejemplo n.º 7
0
 public void Test_EndRequest_After_Dispose()
 {
     using (TestServer server = new TestServer(ServiceName))
     {
         server.Register();
         server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData));
         using (DdeClient client = new DdeClient(ServiceName, TopicName))
         {
             client.Connect();
             IAsyncResult ar = client.BeginRequest(ItemName, 1, null, null);
             Assert.IsTrue(ar.AsyncWaitHandle.WaitOne(Timeout, false));
             client.Dispose();
             byte[] data = client.EndRequest(ar);
         }
     }
 }