示例#1
0
 void AcceptNewSocket(System.IAsyncResult iar)
 {
     m_testClientSocket = null;
     m_testClientState  = TestMessageOrder.NotConnected;
     m_readBuffer       = new byte[1024];
     try
     {
         m_testClientSocket = m_tcpListener.EndAcceptSocket(iar);
     }
     catch (System.Exception ex)
     {
         //Debug.LogError(string.Format("Exception on new socket: {0}", ex.Message));
     }
     m_testClientSocket.NoDelay = true;
     m_testClientState          = TestMessageOrder.Connected;
     BeginReceiveData();
     SendTestData();
     StartListeningForConnections();
 }
示例#2
0
    void ProcessData(int numBytesRecv)
    {
        string temp = TCPServer.CompileBytesIntoString(m_readBuffer, numBytesRecv);

        Debug.Log(string.Format("Server recv: '{0}'", temp));
        byte firstByte = m_readBuffer[0];

        switch (firstByte)
        {
        case 1:
            Debug.LogError(string.Format("Server should not receive first byte of 1"));
            m_testClientState = TestMessageOrder.Error;
            break;

        case 2:
            m_testClientState = TestMessageOrder.ReceiveSecondMessageReply;
            break;

        case 3:
            Debug.LogError(string.Format("Server should not receive first byte of 3"));
            m_testClientState = TestMessageOrder.Error;
            break;

        case 4:
            m_testClientState = TestMessageOrder.ReceiveThirdMessageReply;
            break;

        case 5:
            Debug.LogError(string.Format("Server should not receive first byte of 5"));
            m_testClientState = TestMessageOrder.Error;
            break;

        default:
            Debug.LogError(string.Format("Server should not receive first byte of {0}", firstByte));
            m_testClientState = TestMessageOrder.Error;
            break;
        }
        SendTestData();
    }
示例#3
0
    void SendTestData()
    {
        Debug.Log(string.Format("Server: Client state: {0}", m_testClientState));
        switch (m_testClientState)
        {
        case TestMessageOrder.Connected:
            SendMessageOne();
            break;

        //case TestMessageOrder.SendFirstMessage:
        //break;
        case TestMessageOrder.ReceiveFirstMessageReply:
            SendMessageTwo();
            break;

        //case TestMessageOrder.SendSecondMessage:
        //break;
        case TestMessageOrder.ReceiveSecondMessageReply:
            SendMessageTwo();
            break;

        case TestMessageOrder.SendThirdMessage:
            break;

        case TestMessageOrder.ReceiveThirdMessageReply:
            m_testClientState = TestMessageOrder.Done;
            Debug.Log("ALL DONE");
            break;

        case TestMessageOrder.Done:
            break;

        default:
            Debug.LogError("Server shouldn't be here");
            break;
        }
    }
示例#4
0
 void SendMessageOne()
 {
     m_testClientState = TestMessageOrder.SendFirstMessage;
     byte[] newMsg = new byte[] { 1, 100, 101, 102, 103, 104 };
     SendMessage(newMsg);
 }
示例#5
0
 void SendMessageThree()
 {
     m_testClientState = TestMessageOrder.SendThirdMessage;
     byte[] newMsg = new byte[] { 5, 100, 101, 102, 103, 104, 105, 106, 107, 108 };
     SendMessage(newMsg);
 }
示例#6
0
 void SendMessageTwo()
 {
     m_testClientState = TestMessageOrder.SendSecondMessage;
     byte[] newMsg = new byte[] { 3, 100, 101, 102, 103, 104, 105, 106 };
     SendMessage(newMsg);
 }