protected bool SyncSend(RCONPacket p) { byte[] Packets = p.OutputAsBytes(); checked { if (S.Connected) { if (S.Send(Packets, 0, Packets.Length, SocketFlags.None) == Packets.Length) { Thread.Sleep(1000); int iCount = 0; while (S.Available < 4 & iCount < 5) { Thread.Sleep(1000); iCount++; } PacketsReceived = new byte[S.Available - 1 + 1]; int iIndex = 0; while (S.Available > 0) { int iRec = S.Receive(PacketsReceived, iIndex, S.Available, SocketFlags.None); iIndex += iRec; } return(iIndex > 0); } } else if (!S.Connected & m_connected) { m_connected = false; } return(false); } }