/// <summary>
        /// Accepts connections and spawns thread to handle them
        /// </summary>
        private void AcceptConnections()
        {
            Socket socket = null;

            while (true)
            {
                // Accepts a connection on socket
                try
                {
                    socket = sock.Accept();
                }
                catch (Exception e)
                {
                    e.Message.ToString();
                }

                // create and setup socket state saver
                SocketState sockState = new SocketState();
                sockState.clientState.serverIPAddress1 = IPAddress.Parse(endPoint1);
                sockState.clientState.messageCount     = msgCount;
                sockState.clientState.pace             = pace;
                sockState.sock = socket;
                sockState.clientState.clientSock = socket;

                // set up the client socket
                ClientRun cr = new ClientRun();
                sockState.clientState.serverSock = cr.SetClientSocket(sockState.clientState);
                //Socket endPointSocket = cr.SetClientSocket(sockState.clientState);

                // start the timer
                sockState.stpWatch.Start();

                // Spawn thread and listen on endpoint connection
                sockState.clientState.serverThread = new Thread(delegate()
                {
                    cr.ClientReceive(sockState.clientState);
                });
                sockState.clientState.serverThread.Start();

                // Spawns thread and starts ConnectionHandler function
                sockState.thread = new Thread(delegate()
                {
                    ConnectionHandler(sockState);
                });
                sockState.thread.IsBackground = true;
                sockState.thread.Start();
            }
        }
        /// <summary>
        /// Processes the sending funcitons of the server.
        /// This function will process messages then send
        /// them to alternate endpoint server.
        /// </summary>
        /// <param name="sockState">
        /// SocketState state saver object
        /// </param>
        private void SendFunction(SocketState sockState, byte[] messageBuffer)
        {
            try
            {
                byte[] processedMessage;
                // Have processed client message
                // need to forward this to the endpoint
                // on another socket
                ResponseBuilder rb = new ResponseBuilder();
                //sockState.clientState.processedMessage = rb.Response(sockState);
                processedMessage = rb.Response(sockState, messageBuffer);

                lock (proccessedLbAdd)
                {
                    // Add the processed message to the logbuilder
                    //sockState.clientState.lb.processedMessages.Add(sockState.clientState.processedMessage);
                    sockState.clientState.lb.processedMessages.Add(processedMessage);
                }

                // pass message to endpoint
                ClientRun cr = new ClientRun();
                Thread clientSendThread = new Thread(delegate()
                    {
                        cr.ClientSend(sockState.clientState, processedMessage);
                    });
                clientSendThread.Start();

                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //Thread reRoute = new Thread(delegate()
                //{
                //    cr.RouteMessage(sockState.clientState, processedMessage);
                //});
                //reRoute.Start();
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                //lock (sockState.clientState.clientSendLock)
                //{
                //    // Send message back to the client
                //    //sockState.sock.Send(sockState.clientState.processedMessage);
                //    sockState.sock.Send(processedMessage);
                //}
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
            }
            catch (Exception e)
            {
                e.ToString();
                System.Windows.Forms.MessageBox.Show("ServerRun.SendFunction\r\n" + e.Message.ToString());
            }
        }
        /// <summary>
        /// Accepts connections and spawns thread to handle them
        /// </summary>
        private void AcceptConnections()
        {
            Socket socket = null;

            while (true)
            {
                // Accepts a connection on socket
                try
                {
                    socket = sock.Accept();
                }
                catch (Exception e)
                {
                    e.Message.ToString();
                }

                // create and setup socket state saver
                SocketState sockState = new SocketState();
                sockState.clientState.serverIPAddress1 = IPAddress.Parse(endPoint1);
                sockState.clientState.messageCount = msgCount;
                sockState.clientState.pace = pace;
                sockState.sock = socket;
                sockState.clientState.clientSock = socket;

                // set up the client socket
                ClientRun cr = new ClientRun();
                sockState.clientState.serverSock = cr.SetClientSocket(sockState.clientState);
                //Socket endPointSocket = cr.SetClientSocket(sockState.clientState);

                // start the timer
                sockState.stpWatch.Start();

                // Spawn thread and listen on endpoint connection
                sockState.clientState.serverThread = new Thread(delegate()
                    {
                        cr.ClientReceive(sockState.clientState);
                    });
                sockState.clientState.serverThread.Start();

                // Spawns thread and starts ConnectionHandler function
                sockState.thread = new Thread(delegate()
                {
                    ConnectionHandler(sockState);
                });
                sockState.thread.IsBackground = true;
                sockState.thread.Start();
            }
        }
        /// <summary>
        /// Processes the sending funcitons of the server.
        /// This function will process messages then send
        /// them to alternate endpoint server.
        /// </summary>
        /// <param name="sockState">
        /// SocketState state saver object
        /// </param>
        private void SendFunction(SocketState sockState, byte[] messageBuffer)
        {
            try
            {
                byte[] processedMessage;
                // Have processed client message
                // need to forward this to the endpoint
                // on another socket
                ResponseBuilder rb = new ResponseBuilder();
                //sockState.clientState.processedMessage = rb.Response(sockState);
                processedMessage = rb.Response(sockState, messageBuffer);

                lock (proccessedLbAdd)
                {
                    // Add the processed message to the logbuilder
                    //sockState.clientState.lb.processedMessages.Add(sockState.clientState.processedMessage);
                    sockState.clientState.lb.processedMessages.Add(processedMessage);
                }



                // pass message to endpoint
                ClientRun cr = new ClientRun();
                Thread    clientSendThread = new Thread(delegate()
                {
                    cr.ClientSend(sockState.clientState, processedMessage);
                });
                clientSendThread.Start();



                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //Thread reRoute = new Thread(delegate()
                //{
                //    cr.RouteMessage(sockState.clientState, processedMessage);
                //});
                //reRoute.Start();
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                //lock (sockState.clientState.clientSendLock)
                //{
                //    // Send message back to the client
                //    //sockState.sock.Send(sockState.clientState.processedMessage);
                //    sockState.sock.Send(processedMessage);
                //}
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
                //-========================================
                // =---------------------------------------
            }
            catch (Exception e)
            {
                e.ToString();
                System.Windows.Forms.MessageBox.Show("ServerRun.SendFunction\r\n" + e.Message.ToString());
            }
        }