public TestClass()
        {
            SetupDebug();

            // const int ServerPort = 200;
            const int ServerPort = 5001;
            const int ClientPort = 6666;

            IPHostEntry IPHost = Dns.GetHostEntry("cedeno-dxp.corp.multiverse.net");
            IPAddress[] addr = IPHost.AddressList;
            IPEndPoint sendpt = new IPEndPoint(addr[0], ServerPort);

            RdpClient rdpClient = new RdpClient(ClientPort, 100, 1000, true);
            RdpClient rdpClient2 = new RdpClient(ClientPort + 1, 100, 1000, false);
            //RdpServer rdpServer = new RdpServer(ServerPort, 100, 1000, true);

            RdpConnection rdpClientConn = rdpClient.Connect(sendpt);
            RdpConnection rdpClientConn2 = rdpClient2.Connect(sendpt);
            // RdpConnection rdpServerConn = rdpServer.Accept();

            rdpClientConn.WaitForState(ConnectionState.Open);
            rdpClientConn2.WaitForState(ConnectionState.Open);

            //            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            OutgoingMessage outMessage = new OutgoingMessage();
            outMessage.Write("Good morning");
            outMessage.Send(rdpClientConn);

            outMessage.Send(rdpClientConn2);

            // byte[] msg = Encoding.ASCII.GetBytes("Test");

            // rdpClientConn.Send(msg);
            // rdpClientConn.Send(msg);
            // rdpClientConn.Send(msg);

            IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0);
            IncomingMessage inMessage;

            inMessage = new IncomingMessage(rdpClientConn);
            Console.WriteLine("Got message: {0}", inMessage.ReadString());

            inMessage = new IncomingMessage(rdpClientConn2);
            Console.WriteLine("Got message2: {0}", inMessage.ReadString());

            //            for (int i = 0; i < 3; ++i) {
            //                byte[] rcvdMessage = rdpServerConn.Receive(ref remoteEP);
            //                Console.WriteLine("Server got message from {1}: '{0}'",
            //                                  Encoding.ASCII.GetString(rcvdMessage), remoteEP);
            //                rdpServerConn.Send(msg);
            //            }
            //
            //            for (int i = 0; i < 3; ++i) {
            //                byte[] rcvdMessage = rdpClientConn.Receive(ref remoteEP);
            //                Console.WriteLine("Client got message from {1}: '{0}'",
            //                                  Encoding.ASCII.GetString(rcvdMessage), remoteEP);
            //            }
            //
            //            rdpServerConn.Close();

            Thread.Sleep(100);

            //            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            Thread.Sleep(31000);

            //            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            FinishDebug();

            //rdpConn.Open(false, 1, 2, 3, 4, true);
            //rdpConn.Send(new Multiverse.Network.Rdp.RdpPacket(50));
            //this.Hide();
            //this.WindowState = FormWindowState.Minimized;
        }
 public static void RunOutgoing()
 {
     SocketAddress addr = null;
     int sentCount = 0;
     try {
         int runningCounter = 0;
         long lastTime = CurrentTime;
         for (int i=0; i<messageCount; i++) {
             long currentTime = CurrentTime;
             long interval = currentTime - lastTime;
             if (interval > 1000) {
                 lastTime = currentTime;
                 Logit("Sent " + sentCount + " messages" + " in the last " + interval + "ms");
                 sentCount = 0;
             }
             OutgoingMessage outMessage = new OutgoingMessage();
             Debug.Assert(rdpConnection != null, "In TestRDPClient.RunOutgoing, rdpConnection is null!");
             outMessage.Write("Hello World from CLIENT! - MSG " + runningCounter++);
             bool trying = true;
             while (trying) {
                 try {
                     outMessage.Send(rdpConnection);
                     trying = false;
                 }
                 catch (Exception e) {
                     if (e.Message == "Error - insufficient resources to send data")
                         Thread.Sleep(10);
                     else
                         throw;
                 }
             }
             sentCount++;
         }
         Console.WriteLine("RunOutgoing sent a total of " + messageCount + " messages");
     }
     catch(Exception e) {
         Logit("TestRDPClient.RunOutgoing got error: " + e.ToString());
         Logit("TestRDPClient.RunOutgoing sentCount = " + sentCount);
     }
 }
        public TestClass()
        {
            SetupDebug();

            // const int ServerPort = 200;
            const int ServerPort = 5001;
            const int ClientPort = 6666;

            IPHostEntry IPHost = Dns.GetHostEntry("cedeno-dxp.corp.multiverse.net");

            IPAddress[] addr   = IPHost.AddressList;
            IPEndPoint  sendpt = new IPEndPoint(addr[0], ServerPort);


            RdpClient rdpClient  = new RdpClient(ClientPort, 100, 1000, true);
            RdpClient rdpClient2 = new RdpClient(ClientPort + 1, 100, 1000, false);
            //RdpServer rdpServer = new RdpServer(ServerPort, 100, 1000, true);

            RdpConnection rdpClientConn  = rdpClient.Connect(sendpt);
            RdpConnection rdpClientConn2 = rdpClient2.Connect(sendpt);

            // RdpConnection rdpServerConn = rdpServer.Accept();

            rdpClientConn.WaitForState(ConnectionState.Open);
            rdpClientConn2.WaitForState(ConnectionState.Open);

//            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            OutgoingMessage outMessage = new OutgoingMessage();

            outMessage.Write("Good morning");
            outMessage.Send(rdpClientConn);

            outMessage.Send(rdpClientConn2);

            // byte[] msg = Encoding.ASCII.GetBytes("Test");

            // rdpClientConn.Send(msg);
            // rdpClientConn.Send(msg);
            // rdpClientConn.Send(msg);

            IPEndPoint      remoteEP = new IPEndPoint(IPAddress.Any, 0);
            IncomingMessage inMessage;

            inMessage = new IncomingMessage(rdpClientConn);
            Console.WriteLine("Got message: {0}", inMessage.ReadString());

            inMessage = new IncomingMessage(rdpClientConn2);
            Console.WriteLine("Got message2: {0}", inMessage.ReadString());

            //            for (int i = 0; i < 3; ++i) {
//                byte[] rcvdMessage = rdpServerConn.Receive(ref remoteEP);
//                Console.WriteLine("Server got message from {1}: '{0}'",
//                                  Encoding.ASCII.GetString(rcvdMessage), remoteEP);
//                rdpServerConn.Send(msg);
//            }
//
//            for (int i = 0; i < 3; ++i) {
//                byte[] rcvdMessage = rdpClientConn.Receive(ref remoteEP);
//                Console.WriteLine("Client got message from {1}: '{0}'",
//                                  Encoding.ASCII.GetString(rcvdMessage), remoteEP);
//            }
//
//            rdpServerConn.Close();

            Thread.Sleep(100);

//            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            Thread.Sleep(31000);

//            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            FinishDebug();

            //rdpConn.Open(false, 1, 2, 3, 4, true);
            //rdpConn.Send(new Multiverse.Network.Rdp.RdpPacket(50));
            //this.Hide();
            //this.WindowState = FormWindowState.Minimized;
        }