Зависает и закрывается клиент-серверное приложение - C#

Узнай цену своей работы

Формулировка задачи:

С клиента на сервер отправляется запрос. Запрос отправляется несколько раз в секунду. Сервер выполнив несколько раз запрос закрывается. Полностью закрывается приложение сервера. Но несколько раз выполняет запрос. Бывает даже раз 5 успевает выполнить. Вот проблемный код на сервере: Первый фрагмент находящийся в операторe switch
Листинг программы
  1. case "ZaprosCoordinat":
  2. ZaprosCoordinat(pak[1]);//передаем в метод ID персонажа
  3. string [] sCoor = new string [3];
  4. sCoor[0] = tmpX.ToString();
  5. sCoor[1] = tmpZ.ToString();
  6. sCoor[2] = tmpY.ToString();
  7. SendData("sCoor", sCoor);//отправка пакета клиенту
  8. break;
Второй фрагмент:
Листинг программы
  1. private void ZaprosCoordinat(string charID)
  2. {
  3. charIDD = Convert.ToInt32(charID);
  4. string Connect = "Database=" + database + ";Datasource=" + host + ";User=" + user + ";Password=" + passwordSQL;//информация для подключения к БД
  5. MySqlConnection mysql_connection = new MySqlConnection(Connect); //создаем подключение к БД
  6. MySqlCommand mysql_query = mysql_connection.CreateCommand();//создаем объект MySqlCommand с именем mysql_query используя текущее подключение
  7. mysql_query.CommandText = "SELECT x, z, y FROM characters WHERE `charID` = '" + charID + "';";//создаем SQL запрос который будет храниться в mysql_query
  8. mysql_connection.Open();//для подключение и соединения с базой данных нужно вызвать метод .Open():
  9. MySqlDataReader mysql_result = mysql_query.ExecuteReader();//выполняет запрос и возвращает 0 и более строк результата.
  10. while (mysql_result.Read())//Метод Read() – переходит от одной строки к другой пока конец данных не будет достигнут.
  11. {
  12. // Каждое значение вытягиваем с помощью MySqlDataReader.GetValue(<номер значения в выборке>)
  13. string str = (mysql_result.GetValue(0).ToString() + "|" + mysql_result.GetValue(1) + "|" + mysql_result.GetValue(2));//Метод GetValue(0) извлекает конкретное значение, которое нужно вернуть.
  14. var pak = str.Split('|');//из строки создаем массив
  15. tmpX = Convert.ToInt32(pak[0]);
  16. tmpZ = Convert.ToInt32(pak[1]);
  17. tmpY = Convert.ToInt32(pak[2]);
  18. }
  19. //Выгружаем ресурсы, закрываем соединение:
  20. mysql_result.Close();//закрываем
  21. mysql_query.Dispose();//освобождаем ресурсы
  22. mysql_connection.Close();//когда выполнился запрос, обязательно нужно закрыть соединение с базой данных
  23. }
Нет ошибка где то в етом коде а не в примведенном выше
Листинг программы
  1. if(flag)
  2. {
  3. timer += Time.deltaTime;
  4. if(timer >= 3f)
  5. {
  6. timer = 0f;
  7. int x = Convert.ToInt32(currentPlayerPosition.x);
  8. int z = Convert.ToInt32(currentPlayerPosition.z);
  9. int y = Convert.ToInt32(currentPlayerPosition.y);
  10. int cRx = Convert.ToInt32(currentPlayerRotation.x);
  11. int cRy = Convert.ToInt32(currentPlayerRotation.y);
  12. int cRz = Convert.ToInt32(currentPlayerRotation.z);
  13. int cRw = Convert.ToInt32(currentPlayerRotation.w);
  14. string[] g1 = {x.ToString(), z.ToString(), y.ToString(), cRx.ToString (), cRy.ToString (), cRz.ToString (), cRw.ToString ()};
  15. _net.SendCurrentPosition(g1);
  16. }
  17. }
  18. if(flag2)
  19. {
  20. timer2 += Time.deltaTime;
  21. if(timer2 >= 3f)
  22. {
  23. timer2 = 0f;
  24. _net.ZaprosPlayersInRadius(radiusObzora);
  25. }
  26. }

Решение задачи: «Зависает и закрывается клиент-серверное приложение»

textual
Листинг программы
  1. MySqlConnection mysql_connection;
  2. void OnStart()
  3. {
  4.  string Connect = "Database=" + database + ";Datasource=" + host + ";User=" + user + ";Password=" + passwordSQL;//информация для подключения к БД
  5. MySqlConnection mysql_connection = new MySqlConnection(Connect); //создаем подключение к БД
  6. mysql_connection.Open();//для подключение и соединения с базой данных нужно вызвать метод .Open():
  7. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы