protected override void OnConnection() { Log("behaviac: sending initial settings.\n"); this.SendInitialSettings(); SocketUtils.SendWorkspaceSettings(); this.SendInitialProperties(); { Log("behaviac: sending packets before connecting.\n"); this.SendExistingPackets(); } SocketUtils.SendText("[connected]precached message done\n"); //when '[connected]' is handled in the designer, it will send back all the breakpoints if any and '[breakcpp]' and '[start]' //here we block until all those messages have been received, otherwise, if we don't block here to wait for all those messages //the breakpoints checking might be wrong. bool bLoop = true; while (bLoop && m_isDisconnected.Get() == 0 && this.m_writeSocket != null && this.m_writeSocket.Connected) { //sending packets if any if (m_packetsCount > 0) { SendAllPackets(); } string kStartMsg = "[start]"; bool bFound = this.ReceivePackets(kStartMsg); if (bFound) { bLoop = false; } else { System.Threading.Thread.Sleep(1); } } //this.m_bHandleMessage = false; }