public void ReceiveData1() { try { SocketClient1 = SocketServer.Accept(); // socket1 ,ожидает клиента SocketClient1.Send(Encoding.Default.GetBytes("`joinSuccess,0,")); //шлет клиенту log_LB.Items.Add("p0:joinSuccess,0,"); // лог что подсоединился игрок try { do { if (SocketClient1.Receive(data1) > 0) //checking received data != 0 { string[] commands = Encoding.Default.GetString(data1).Trim().Split('`'); Array.Clear(data1, 0, data1.Length); for (int i = 1; i < commands.Length; i++) { log_LB.Items.Add("p0:" + commands[i]); string[] line = commands[i].Split(','); if (line[0] == "color") { int temp = int.Parse(line[1]); if (p1.SnackColor == temp) { SocketClient1.Send(Encoding.Default.GetBytes("`color,false,")); log_LB.Items.Add("p0:color,false"); } else { SocketClient1.Send(Encoding.Default.GetBytes("`color,true,")); log_LB.Items.Add("p0:color,true"); p0.SnackColor = temp; } } else if (line[0] == "ready") { p0r = true; if (p0r && p1r) { SocketClient1.Send(Encoding.Default.GetBytes("`colorset," + p1.SnackColor + ",")); SocketClient2.Send(Encoding.Default.GetBytes("`colorset," + p0.SnackColor + ",")); start = true; } } else if (line[0] == "way") { if (line[1] == "w") { ChangeWay(p0, Player.Way.Up); } else if (line[1] == "a") { ChangeWay(p0, Player.Way.Left); } else if (line[1] == "s") { ChangeWay(p0, Player.Way.Down); } else if (line[1] == "d") { ChangeWay(p0, Player.Way.Right); } } } } else { SocketClient1.Close(); SocketClient2.Close(); SocketServer.Close(); IsConnected = false; log_LB.Items.Add("server close"); } } while (true); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }