Esempio n. 1
0
        internal void Start()
        {
            Log("StatusRequestHandler::Start");

            try
            {
                byte[] buffer = new byte[mHeaderBufferSize];
                mClient.Client.ReceiveTimeout = 100;   // ms timeout
                int read = mClient.Client.Receive(buffer, mHeaderBufferSize, SocketFlags.None);
                if (read == 8)
                {
                    TestServerMessageID messageID = (TestServerMessageID)BitConverter.ToInt16(buffer, 0);
                    short version    = BitConverter.ToInt16(buffer, 2);
                    int   dataLength = BitConverter.ToInt32(buffer, 4);
                    HandleMessageID(messageID, dataLength);

                    Log("MessageID: " + messageID + "; data length: " + dataLength);
                }
            }
            catch (Exception ex)
            {
                Log("StatusRequestHandler exception: " + ex);
            }

            mClient.Close();
            mClient     = null;
            mTestServer = null;
        }
Esempio n. 2
0
        private void Send(TestServerMessageID messageID, byte[] data)
        {
            byte[] buffer;

            if (data != null)
            {
                buffer = new byte[data.Length + mHeaderBufferSize];
                data.CopyTo(buffer, 8);
            }
            else
            {
                buffer = new byte[mHeaderBufferSize];
            }

            BitConverter.GetBytes((Int16)messageID).CopyTo(buffer, 0);
            BitConverter.GetBytes((Int16)1).CopyTo(buffer, 2); // Version, not used right now
            BitConverter.GetBytes((Int32)buffer.Length - mHeaderBufferSize).CopyTo(buffer, 4);

            mClient.Client.Send(buffer);
        }
Esempio n. 3
0
        private void HandleMessageID(TestServerMessageID messageID, int dataLength)
        {
            if (messageID == TestServerMessageID.TestServerStatusReq)
            {
                TestServerStatusRsp rsp = new TestServerStatusRsp()
                {
                    Status = mTestServer.TestServerState.ToString()
                };

                byte[] data = JsonHelper.ToByteStream <TestServerStatusRsp>(rsp);
                Send(TestServerMessageID.TestServerStatusRsp, data);

                Log("Send status: " + rsp.Status);
            }
            else if (messageID == TestServerMessageID.TestServerStopReq)
            {
                // This call could take a while
                mTestServer.Stop();

                Send(TestServerMessageID.TestServerStopRsp, null);

                Log("Send StopRsp");
            }
        }