static void GenerateMessages() { // Генерация сообщений для отправки клиенту Random rand = new Random(); while (true) { string device_mes = DataWorker.get_surgard(); if (DataWorker.write_journal(device_mes)) { sendMessages.Add(DataWorker.make_message()); Console.WriteLine("Я записав"); } else { Console.WriteLine("Ошибка записи сообщения"); } Thread.Sleep(rand.Next(800, 7000)); } }
public static void ReceiveCallback(IAsyncResult ar) { Thread thr = Thread.CurrentThread; int idThread = thr.ManagedThreadId; string content = String.Empty; Socket client_soc = (Socket)ar.AsyncState; int lenByteReceive = client_soc.EndReceive(ar); if (lenByteReceive > 0) { content += Encoding.Unicode.GetString(buffer, 0, lenByteReceive); if (content.IndexOf(".") > -1) { Console.WriteLine("Получено от клиента {0} байт", lenByteReceive); Console.WriteLine("Сообщение: {0}", content); if (content.Remove(content.Length - 1, 1) != "") { string choice = content.Remove(1, content.Length - 1); string data = content.Substring(1, content.Length - 2); switch (choice) { case "1": try { string[] items = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string newmsg = DataWorker.Load_Group(items[0]); byte[] byteSend1 = Encoding.Unicode.GetBytes(newmsg); client_soc.BeginSend(byteSend1, 0, byteSend1.Length, 0, new AsyncCallback(SendCallback), client_soc); } catch { byte[] byteSend1 = Encoding.Unicode.GetBytes("error"); client_soc.BeginSend(byteSend1, 0, byteSend1.Length, 0, new AsyncCallback(SendCallback), client_soc); } break; case "2": try { string[] items = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string newmsg = DataWorker.Load_Subject(items[0]); byte[] byteSend2 = Encoding.Unicode.GetBytes(newmsg); client_soc.BeginSend(byteSend2, 0, byteSend2.Length, 0, new AsyncCallback(SendCallback), client_soc); } catch { byte[] byteSend2 = Encoding.Unicode.GetBytes("error"); client_soc.BeginSend(byteSend2, 0, byteSend2.Length, 0, new AsyncCallback(SendCallback), client_soc); } break; case "0": try { string[] items = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string newmsg = DataWorker.Load_Surname(items[0]); byte[] byteSend0 = Encoding.Unicode.GetBytes(newmsg); // Отправляем сообщение клиенту client_soc.BeginSend(byteSend0, 0, byteSend0.Length, 0, new AsyncCallback(SendCallback), client_soc); } catch { byte[] byteSend0 = Encoding.Unicode.GetBytes("error"); client_soc.BeginSend(byteSend0, 0, byteSend0.Length, 0, new AsyncCallback(SendCallback), client_soc); } break; case "3": try { string[] items = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string newmsg = DataWorker.Load_All(); byte[] byteSend2 = Encoding.Unicode.GetBytes(newmsg); client_soc.BeginSend(byteSend2, 0, byteSend2.Length, 0, new AsyncCallback(SendCallback), client_soc); } catch { byte[] byteSend2 = Encoding.Unicode.GetBytes("error"); client_soc.BeginSend(byteSend2, 0, byteSend2.Length, 0, new AsyncCallback(SendCallback), client_soc); } break; case "7": try { string[] items = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); DataWorker.Add_Record(items[0], items[1], items[2], items[3]); byte[] byteSend3 = Encoding.Unicode.GetBytes("3"); client_soc.BeginSend(byteSend3, 0, byteSend3.Length, 0, new AsyncCallback(SendCallback), client_soc); } catch { byte[] byteSend3 = Encoding.Unicode.GetBytes("error"); client_soc.BeginSend(byteSend3, 0, byteSend3.Length, 0, new AsyncCallback(SendCallback), client_soc); } break; case "4": try { string[] items = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); DataWorker.Delete_Name(items[0]); byte[] byteSend4 = Encoding.Unicode.GetBytes("4"); client_soc.BeginSend(byteSend4, 0, byteSend4.Length, 0, new AsyncCallback(SendCallback), client_soc); } catch { byte[] byteSend4 = Encoding.Unicode.GetBytes("error"); client_soc.BeginSend(byteSend4, 0, byteSend4.Length, 0, new AsyncCallback(SendCallback), client_soc); } break; case "5": try { string[] items = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); DataWorker.Delete_Group(items[0]); byte[] byteSend5 = Encoding.Unicode.GetBytes("5"); client_soc.BeginSend(byteSend5, 0, byteSend5.Length, 0, new AsyncCallback(SendCallback), client_soc); } catch { byte[] byteSend5 = Encoding.Unicode.GetBytes("error"); client_soc.BeginSend(byteSend5, 0, byteSend5.Length, 0, new AsyncCallback(SendCallback), client_soc); } break; case "6": try { string[] items = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); DataWorker.Delete_Subject(items[0]); byte[] byteSend6 = Encoding.Unicode.GetBytes("6"); client_soc.BeginSend(byteSend6, 0, byteSend6.Length, 0, new AsyncCallback(SendCallback), client_soc); } catch { byte[] byteSend6 = Encoding.Unicode.GetBytes("error"); client_soc.BeginSend(byteSend6, 0, byteSend6.Length, 0, new AsyncCallback(SendCallback), client_soc); } break; default: byte[] byteSend = Encoding.Unicode.GetBytes("error"); client_soc.BeginSend(byteSend, 0, byteSend.Length, 0, new AsyncCallback(SendCallback), client_soc); break; } } else { Console.WriteLine("Сообщение пустое"); } } else { client_soc.BeginReceive(buffer, 0, buffer.Length, 0, new AsyncCallback(ReceiveCallback), client_soc); } } }