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(); }
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(); }
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; } }
void SendMessageOne() { m_testClientState = TestMessageOrder.SendFirstMessage; byte[] newMsg = new byte[] { 1, 100, 101, 102, 103, 104 }; SendMessage(newMsg); }
void SendMessageThree() { m_testClientState = TestMessageOrder.SendThirdMessage; byte[] newMsg = new byte[] { 5, 100, 101, 102, 103, 104, 105, 106, 107, 108 }; SendMessage(newMsg); }
void SendMessageTwo() { m_testClientState = TestMessageOrder.SendSecondMessage; byte[] newMsg = new byte[] { 3, 100, 101, 102, 103, 104, 105, 106 }; SendMessage(newMsg); }